close format_list_bulleted Index

1. Einführung

1.1. Was kann cloudworx.send?

cloudworx.send ist ein Tool aus der Reihe unserer cloudworx.components, unserer technischen Ergänzungen für Salesforce. cloudworx.send ist eine fortgeschrittene E-Mail-Tool, das ermöglicht den Versand von Prozess-relevanten und automatisierten E-Mails. Der Vorteil von cloudworx.send, ist dass, mit einem Klick, wird die korrekte E-Mail-Vorlage relevant für deinen aktuellen Prozess-Schritt mit den richtigen Anhängen ausgewählt. Alle Mergefelder* sind bereits ausgefüllt und du kannst sogar eingeben, ob du die E-Mail später versenden möchtest. Der E-Mail-Versand kann auch automatisiert werden, um noch ein paar Klicks zu sparen.

Vorteile von cloudworx.send:

  • Keine Klickerei durch eine lange Liste von E-Mailvorlagen, - der Vorlage wird anhand des Prozessesschrittes ausgewählt;
  • Alle Mergefelder sind als realer Text mit den Informationen aus Salesforce dargestellt, damit du sehen kannst, ob die E-Mail so ausschaut, wie sie sein sollte;
  • Du kannst entscheiden, ob die E-Mail auf einer späteren definierten Uhrzeit versendet werden sollen;
  • Automationen und Schedulers* sind einfach zu konfigurieren;
  • Versende E-Mails über euren firmeninternen SMTP-Server* direkt aus Salesforce, wenn gewünscht;
  • Alle E-Mails werden sowohl in deiner Salesforce-Org, als auch deinem externen Postfach gespeichert (wenn SMTP aktiviert ist);
  • Du bist nicht mehr durch den Salesforce-Standard bei Größe und Menge an E-Mails und Anhängen beschränkt;
  • Du hast die Möglichkeit, zu Links konvertierte Anhänge zu versenden;        
  • Die E-Mail des Absenders sieht so aus, als wäre sie über das E-Mail-Postfach verschickt worden, und nicht aus Salesforce;

1.2. Die cloudworx.send Oberfläche

Registerkarten Beschreibung
Configurations Diese Registerkarte dient der Konfiguration der Anwendung. In einem einzelnen Datensatz wird hier die Authentifizierung gegenüber cloudworx vorgenommen. Außerdem können hier weitere, die gesamte Salesforce Org betreffende, Einstellungen vorgenommen werden.
Templates Hier werden alle Informationen für den Versand einer vordefinierten E-Mail vorgenommen. Alle E-Mails, die anhand eines Templates erstellt werden, nutzen diese Einstellungen. Es ist somit die Vorlagenkonfiguration. Alle untenstehenden Objekte (Scopes, Field Automations, etc.), außer die SMTP-Settings, beziehen sich auf je ein Template.
Scopes Scopes legen fest, welche Datensätze für den Versand einer E-Mail herangezogen werden sollen. Es muss mindestens ein Parent Scope festgelegt werden, der die Salesforce Id des Ausgangsdatensatzes abbildet. In Scopes kann außerdem festgelegt werden, ob in referenzierten Datensätzen vorhandene Dateien an das zu versendende E-Mail angehängt werden sollen.
Users Users sind im Prinzip der Absender der E-Mail und sie können konfiguriert werden, wenn die E-Mail von einer bestimmten Adresse oder Benutzer versendet werden soll. Alle Users müssen als Benutzer in Salesforce hinterlegt werden.
Recipients Recipients sind der Empfänger und bestimmen wer die E-Mail empfangen soll. Sie können dynamisch konfiguriert werden und aus den Scopes ausgewählt werden.
Attachments Anhänge, die immer mit versendet werden sollen, können hier hochgeladen werden. Sie werden dann immer ausgewählt beim Versand der E-Mail.
Templates Hier werden alle Informationen für den Versand einer vordefinierten E-Mail vorgenommen. Alle E-Mails, die anhand eines Templates erstellt werden, nutzen diese Einstellungen. Es ist somit die Vorlagenkonfiguration. Alle untenstehenden Objekte (Scopes, Field Automations, etc.), außer die SMTP-Settings, beziehen sich auf je ein Template.
Field Automations Über Field Automations können Felder in Salesforce wahlweise vor oder nach Versand der E-Mail befüllt oder verändert werden. Eine Field Automation bezieht sich immer auf eine der in dem Template angelegten Scopes. Das angegebene Feld wird in allen Datensätzen der angegebenen Scope aktualisiert oder befüllt, wenn die in der Field Automation hinterlegte Bedingung korrekt ist. Die Bedingung und der zu schreibende Wert können als fest hinterlegter Wert oder auch als Mergefeld eingetragen werden.
Schedules Mit Schedules ist das automatische Versenden von E-Mails unter festgelegten Bedingungen möglich. Das Feld, das die Konditionen festlegt, ist immer booleanisch. Und es ist immer eine Feldautomation nötig, die den Scheduler davon abhält, die Task ungehindert auszuführen (oder die E-Mail zu senden), nachdem die Kondition auf wahr gesetzt wurde.
Smtp Settings Diese Konfiguration brauchst du, um SMTP („Simple Mail Transfer Protocol“) für das Versenden von E-Mails zu nutzen. Ein Datensatz pro Benutzer wird benötigt, sowie die SMTP-Information für jeden Benutzer.
Results Nach jedem erfolgreichen oder fehlgeschlagenen Versand einer E-Mail wird ein Result-Datensatz erzeugt. Dieser enthält die ID des Datensatzes, aus dem die Dokumenterzeugung gestartet wurde, den Zeitpunkt der Erstellung und den Status („Success“, bei erfolgreichem E-Mailversand) des E-Mailsversands im Feld „Message“.

2. Voraussetzungen

Um cloudworx.send installieren zu können, müssen in deiner Salesforce-Org ein paar Voraussetzungen gegeben sein.

2.1. Salesforce-Version

Für die Installation von cloudworx.send benötigst du eine Salesforce-Enterprise, Unlimited- oder Developer-Version, die API*-fähig ist.

2.2. Erweiterte E-Mail

"Erweiterte E-Mail" muss in deiner Instanz aktiviert werden. Das kannst du unter Setup machen. In Setup nach "Erweiterte E-Mail" suchen und auf "Aktivieren" klicken.

2.3. E-Mail

Dieser Schritt ist nur erforderlich, wenn du E-Mails über SMTP versenden willst. cloudworx.send braucht Zugang zu deinem E-Mail-Klienten, und dafür muss es SMTP nutzen. cloudworx.send muss auf das Postfach jedes Users zugreifen, daher musst du die SMTP-Adresse, die E-Mail-Adresse, sowie das Passwort bereitstellen. Damit die User nicht ihre privaten Passwörter verwenden müssen, empfehlen wir dringend, ein App-Passwort* in dem E-Mail-Provider zu benutzen. App-Passwörter erlauben Apps und Geräten, auf deinen E-Mail-Account zuzugreifen, wenn die Multi-Faktor-Authentifizierung aktiviert ist. Dein E-Mail-Provider wird dir alle dazu nötigen Informationen geben können. Allerdings ist es wichtig, anzumerken, dass nicht alle E-Mail-Provider diese Funktion unterstützen, daher können wir keine Verantwortung für das Setup oder Einschränkungen auf Seiten des Providers übernehmen.

3. Installation and Setup

Um deine Instanz bereit für cloudworx.send zu machen, musst du noch ein paar Kleinigkeiten einrichten.

3.1. Lightning-Experience-Datensatzseiten

cloudworx.send loggt E-Mails als "Aktivität". Alle E-Mails werden also in der "Aktivität"-Sektion einer "Lightning-Experience-Datensatzseite" dargestellt. Es muss überprüft werden, dass die "Lightning-Komponente" "Aktivitäten" verfügbar ist:

  1. Suche dafür im Setup nach "Lightning-Anwendungsgenerator"
  2. Bearbeite die gewünschten Seiten
  3. Füge die "Lightning-Komponente" "Aktivitäten" in die Seite ein, wo die E-Mails dargestellt werden sollend. Gehe auf "Speichern"

3.2. Aufgaben-Datensatz-Typen

Alle geloggten E-Mails von cloudworx.send werden als Aktivitäten mit dem Datensatztyp* "E-Mail" und einem zugehörigen Seiten-Layout* mit dem Paket geloggt. Um sicherzustellen, dass andere Aktivitäten mit dem entsprechenden Layout geloggt werden, erstelle einen Datensatztyp unter dem Objekt* "Aufgabe", wenn du noch keine konfiguriert hast, und lege eine für das Standard-Layout für Aktivitäten fest. Wenn du schon ein Aufgaben-Datensatztyp-Seitenlayout konfiguriert hast, kannst du diesen Schritt überspringen.

  1. Dafür musst du im Setup auf "Objekt-Manager" und dann auf "Aufgabe" gehen
  2. Gehe auf "Datensatztypen" aus, erstelle einen neuen und konfiguriere die entsprechende Auswahllisten

3.3. Sicherheit auf Feld-Ebene

Um zu gewährleisten, dass alle für cloudworx.send relevanten Passwörter und geheimen Felder für den Server zugriffsbereit sind, musst du ein Berechtigungssätze* erstellen. Wenn du das Permission Set für cloudworx.send schon erstellt hast, kannst du diesen Schritt überspringen.

  1. Gib dafür im Setup "Berechtigungssätze" ein. Klicke auf "Neu" und gib eine Beschreibung ein. Der API-Name wird dann automatisch ausgefüllt
  2. Wenn du gerne bestimmen würdest, ob es Einschränkungen für die Profile geben soll, wähle die entsprechende Lizenz für den Benutzer, der in Kommunikation mit dem cloudworx.send API sein wird (wahrscheinlich der Systemadministrator)
  3. Klicke auf "Weiter" und wähle aus dem Berechtigungssätze-Überblick "System-Berechtigungen"
  4. Klicke in der Übersicht über die System-Berechtigungen auf "Bearbeiten" und suche nach oder scrolle zu "Verschlüsselte Daten anzeigen" und füge unter "Zuweisungen verwalten" die Benutzer hinzu, die in Kommunikation mit der API sein werden
  5. Klicke dann auf „Fertig“
Schritt 4
Schritt 4
Schritt 5
Schritt 5

3.4. Passwort-Konfiguration

cloudworx.send muss sich mit dem Benutzer einloggen, der in Kommunikation mit der Schnittstelle ist. Das bedeutet, dass das Passwort und der Sicherheitstoken immer aktuell sein müssen. Wenn es den Passwortrichtlinien deines Unternehmens entspricht, empfehlen wir folgende Einstellungen einzurichten:

  1. Gehe zu Setup
  2. Tippe in die Schnellsuche "Profile" ein. Klicke dann auf der Liste auf ein Profil, das mit cloudworx.send in Kommunikation ist
  3. Gehe in der daraufhin erscheinenden Liste auf "Kennwortrichtlinien". Ändere dann die Einstellung "Benutzerkennwörter laufen ab in" auf "Läuft nie ab" und die Einstellung "Maximal zulässige ungültige Anmeldeversuche" auf "Keine Obergrenze"

Wenn es nicht den Passwortrichtlinien deines Unternehmens entspricht und das Passwort sich regelmäßig ändert, musst du in dem Fall schauen, dass du die Authentifizierung bei jeder Änderung durchführst. Das erklären wir beim Punkt XY.

3.5. Installation

Sobald deine Org bereit ist, kannst du zur Installation übergehen.

  1. Wenn du auf der Installations-Seite bist, wähle "Nur für Admins installieren". Diese Auswahl legt fest, welche User dazu berechtigt sein sollen, das Toolset zu konfigurieren, und auf spezielle Datensätze zu cloudworx.send zuzugreifen. Wir zeigen dir im Punkt XY, wie du das E-Mailversand oder die Konfiguration für alle User freigibst
  2. Gehe auf "Installieren"
  3. Kreuze "Ja, ich gewähre diesen Drittanbieter-Seiten Zugriff" an
Schritt 1
Schritt 1

Sobald deine Installation abgeschlossen ist, findest du alle dem Package zugehörigen Komponenten in deiner Org. Du kannst sie an der Namenslücke „cwsd“ erkennen.

Vielleicht bekommst du eine Benachrichtigung mit folgendem Inhalt "Die App braucht einige Zeit zum Installieren. Du erhältst eine E-Mail, sobald die Installation beendet ist." Klicke einfach auf "Fertig" und du kriegst eine Benachrichtigung, wenn sie bereit ist.

3.6. Setup

Nach beendeter Installation empfehlen wir die Überprüfung der Installation im Bereich "Packaging" unter "Installed Packages" im Salesforce Setup.

Als Allererstes müssen wir die Nutzungsrechte für die App vergeben. Die Nutzung der Applikation setzt die Vergabe bestimmter Rechte an gewünschte Salesforce-User voraus. Grundsätzlich wird hierbei nach der Art der gewünschten Nutzung unterschieden:

  • cloudworx.send Admin: zur vollständigen Verwaltung der Applikation
  • cloudworx.send User: für den Versand und Vorschau von E-Mails benötigt
  1. Suche dafür im Setup nach "Berechtigungssätze"
  2. Suche in der Liste nach "cloudworx.send Admin" und "cloudworx.send User" und klicke auf das jeweilige Set an Rechten, das du einem Benutzer vergeben willst
  3. Gehe auf "Zuweisungen verwalten" und füge die gewünschten Benutzer hinzu mittels Ankreuzen des Kontrollkästchens hinzu

Als nächstes müssen wir um eine E-Mail-Datensatzseite* aktivieren.

  1. Suche dafür im Setup nach "Lightning Anwendungsgenerator“ und wähle "Email Record Page (cloudworx.send)"
  2. Klicke auf den "Anzeigen"-Button
  3. Ein Fenster mit folgendem Inhalt wird erscheinen: "Für dieses Objekt wurden noch keine Datensätze erstellt. Sie können sich die Komponenten auf der Seite ansehen und diese bearbeiten, die Inhalte werden jedoch erst angezeigt, wenn Daten zum Anzeigen vorhanden sind.". Klicke auf „OK"
  4. Klicke in der oberen rechten Ecke auf "Aktivierung…"
  5. Gehe unter Anwendung, Datensatztyp und Profile auf "Zu Anwendungen, Datensatztypen und Profilen zuweisen"
  6. Wähle die Lightning-Anwendung aus. Wir empfehlen alle Anwendungen, die in Nutzung sind, auszuwählen. Wenn du z.B. die "Sales"-Anwendung nutzt, wähle diese aus. Gehe dann auf "Weiter"
  7. Wähle Desktop, Mobiltelefon oder beides. Gehe auf "Weiter"
  8. Wähle aus den Datensatztyp "Email" aus und gehe auf "Weiter"
  9. Wähle die Profile aus, die ihr in eurer Instanz verwendet
  10. Gehe auf „Speichern“

Als nächstes, prüfen, dass der API-Zugriff auf alle Felder hat, die er benötigt. Im Objekt "Task" im "Objektmanager", auf "Felder & Beziehungen" klicken und das Feld "Typ" finden. Unter "Feldebenensicherheit festlegen" prüfen, dass das Feld sichtbar für das Profil vom Benutzer ist, der in der Kommunikation mit der Schnittstelle ist. Wenn gewünscht, kann das Seitenlayout für das "E-Mail Seitenlayout" übernommen werden. Um die Feldsicherheit anzupassen, ändere die Konfiguration von jedem Feld im "Aktivität"-Objekt.

Bei der Installation eines Pakets wird Salesforce den "Datensatztyp" vom installierten Paket als Standard für alle Benutzer setzen. Das bedeutet in dem Fall konkret, dass der Standard "Datensatztyp" für das Objekt "Aufgabe" jetzt der „Datensatztyp“ "Email" ist. Um das anzupassen, gehe zu "Profile" und auf "Systemadministrator". Scrolle zu den "Datensatztypeneinstellungen" runter und gehe auf "Aufgabe". Klicke auf "Bearbeiten" und wähle den "Datensatztyp" aus, den du als Standard haben willst. Für alle Profile wiederholen, die in Nutzung sind. Stelle sicher, dass der "Datensatztyp" "Email" für den Benutzer verfügbar ist, der in der Kommunikation mit der cloudworx.send Schnittstelle ist. Andere Benutzer müssen kein Zugriff auf diesen "Datensatztyp" haben, da sie die versendeten E-Mails ohne sehen können. Wenn sie keinen Zugriff haben, können sie diesen "Datensatztyp" beim Anlegen von einer Aufgabe nicht auswählen.

4. Konfiguration

Erster Schritt in der Konfiguration der Applikation ist die Erstellung eines Configuration-Datensatzes.

  1. Suche im App-Launcher nach der „cloudworx.send“-App.
  2. Du wirst auf dem „Configurations“-Tab landen. Wir müssen einen Datensatz dazu benötigen, um cloudworx.send nutzen zu können. Gehe dazu auf „+ Neu“.
Schritt 1
Schritt 1
Schritt 2
Schritt 2

Schauen wir uns die Felder hier etwas näher an.

Felder Beschreibung
Deactivate Die vorhandene Konfiguration kann deaktiviert werden.
Deactivate Tracking Aktiviert und deaktiviert alle Tracking*-Werkzeuge in einer Vorlage. Wenn das Tracking aktiviert ist, werden alle vordefinierten Werkzeuge mit Userlinks, inklusive der Tracking-Pixel, in getrackte umgewandelt. Dies erlaubt es, Kundenverhalten auf einem breiten Spektrum zu erfassen.
Deactivate SMTP Erlaubt, SMTP zu aktivieren und zu deaktivieren. Anstatt die vorhandenen SMTP-Einstellungen zu löschen, kannst du sie also einfach nur deaktivieren. Warum würdest du aber SMTP deaktivieren wollen? Zum Beispiel, wenn du die Grenzen von SMTP umgehen willst und eine große Zahl an E-Mails oder eine Menge an Informationen verschicken willst.
Deactivate Schedules Aktiviert und deaktiviert die Schedules. Ein weiteres mächtiges Tool, das, neben Schedulinh auch erlaubt, die Bedingungen, die Aktionen auslösen.
Debug Mode Aktiviert den Debug Modus. In diesem Modus werden Fehlermeldungen als Notizen in den jeweiligen Datensätzen gespeichert.
Standard Organization-Wide Address Mit cloudworx.send kannst du auf Ebene der Vorlagen einen Absender vordefinieren, sowie eine Absender-Adresse. Deine User verwenden möglicherweise mehrere E-Mail-Adressen, um Dokumente zu versenden, die nicht immer mit einem aktiven User, der auch wirklich der Absender ist, verknüpft ist. Für diesen Fall ist es sehr nützlich, eine firmenweite Adresse auszusetzen, von welcher die E-Mails gesendet werden.
Tracking Pixel Dieses Feld legt die Datei fest, die für ein anderes erwerbbares Tracking-Tool benutzt wird: Tracking Pixel. Um Tracking Pixel in deiner E-Mail-Adresse zu verwenden reicht es nicht aus, das vorliegende Feld auszufüllen. Du brauchst auch ein in einer Vorlage verwendetes Mergefeld {id_pixel}.
Open-Task-Status und Completed-Task-Status Beide Felder zeigen uns den Task-Status an. NB: Egal ob offen oder abgeschlossen, um die korrekte Ausführung des Codes zu gewährleisten, müssen beide Felder auf dem Seitenlayout aufgeführt sein.
Error E-Mail-Address Dieses Feld legt fest, an welche E-Mail-Adresse Fehlermeldungen verschickt werden sollen, wenn etwas schiefgeht.
Client Secret Das Feld enthält eine Sicherheitscode, die nach Aktivierung des Tools automatisiert ausgefüllt wird und muss nicht von dir händisch eingebeben werden.

Du brauchst nur einen Datensatz erstellen. Trage in die Felder die entsprechenden Informationen ein.

Nachdem du alle Felder erstellt und ausgefüllt hast, wird deine Konfiguration angezeigt. Außer dem, was du ausgefüllt hast, siehst du ein paar Buttons in der oberen rechten Ecke und davon "Authenticate" und "Toggle Schedule". "Authenticate" führt die Authentifizierung von cloudworx.send durch, damit du das Tool nutzen kannst. Das Feld "Client Secret" wird dann ausgefüllt. Den Button kannst du schon mal klicken. Du siehst dann ein "Success" Seite. Der letzte Button aktiviert und deaktiviert alle Schedules.

Verknüpfte Listen

Die Konfiguration schließt folgende verknüpfte Listen mit ein: Templates, SMTP-Settings und Configuration History.

| Templates | Eine Liste an benutzten Vorlagen. Ein leichter Weg, auf alle Vorlage zuzugreifen, oder zu sehen, wann und durch wen die Vorlage zuletzt geändert wurde. |
| SMTP-Settings | Die Konfigurationen, die du brauchst, um SMTP-Protokoll für das Versenden von E-Mails zu nutzen. |
| Configuration History | Eine Übersicht über alle Änderungen, die an einer Konfiguration vorgenommen wurden. |

5. Templates

5.1. Eine Template erstellen

Gehen wir weiter zu Templates und erstellen wir die erste.

Klicke auf den Templates-Tab. Es gibt noch keine. Gehe in der oberen rechten Ecke auf „Neu“. Schauen wir uns die Felder einmal kurz an.

Felder Beschreibung
Name Eigene, frei wählbare Bezeichnung für die Template. Das ist ein Pflichtfeld.
Configuration Referenz auf den Configuration-Datensatz, den du schon erstellt hast. Das ist ein Pflichtfeld.
cloudworx Id Die cloudworx Id wird bei Erstellung des Template-Datensatzes automatisch erstellt und muss von dir hier nicht ausgefüllt werden. Sie ist eine Referenz, die man für die Erstellung des Versand-Buttons braucht, um die richtige Vorlage auszuwählen.
Wrapper Referenz auf den Wrapper – eine E-Mail-Signatur, die das Design von deiner E-Mail konfiguriert.
Attachment Required Mit dieser Checkbox kannst du bestimmen, ob ein Anhang obligatorisch sein soll. Wenn du das ankreuzt, wird es unmöglich, eine E-Mail ohne Anhang zu verschicken.
Deactivate Tracking Aktiviert und deaktiviert alle Tracking-Tools, die in einer Vorlage sind. Wenn das Tracking aktiviert ist, werden alle festgelegten mit Userlinks, inklusive Tracking Pixel, in getrackte umgewandelt. Dies erlaubt es, Kundenverhalten auf einem breiten Spektrum zu erfassen.
Send Asynchronously Aktiviert das asynchrone* Senden von E-Mails. Das ist eine wichtige und fortgeschrittene Funktion, empfehlenswert vor allem für das Senden von größeren Anhängen, um eine Meldung von Salesforce einer Zeitüberschreitung zu vermeiden.
Subject Der Betreff der E-Mail. Das ist ein Pflichtfeld. Mergefelder sind möglich in diesem Feld aber erst nach der Konfiguration. Gib einfach eine eindeutige Bezeichnung für dich ein, damit du die Vorlage erstellen kannst und pass sie später an.
Body Der Inhalt der E-Mail. Das ist ein Pflichtfeld. Mergefelder sind möglich in diesem Feld aber erst nach der Konfiguration. Gib einfach eine eindeutige Bezeichnung für dich ein, damit du die Vorlage erstellen kannst und pass sie später an. Die E-Mail-Inhalt kann aus Text oder HTML bestehen. Aufgrund aber der Salesforce-Absicherung gegen XSS*, wird HTML im Fenster nicht richtig angezeigt, sondern erst in der fertigen E-Mail.

Auf einem Template Page-Layout sind mehrere verwandte Listen zu sehen: Scopes, Users, Recipients, Attachments, Field Automations, Schedules, Emails, Results, Template History.  

Verwandte Listen Beschreibung
Scopes Scopes definieren, welche Datensätze für dieses Template berücksichtigt werden.
Users Benutzer in Salesforce, von wem diese E-Mail versendet wird. Es ist möglich hier eine Prioritätsliste zu definieren.
Recipients Der Empfänger der E-Mail.
Attachments Anhänge, die immer mitversendet werden. Die sind Dokumente, die nicht dynamisch sind.
Schedules Mit Schedules ist das automatische Versenden von E-Mails unter festgelegten Bedingungen möglich. Das Feld, das die Konditionen festlegt, ist immer booleanisch. Und es ist immer eine Feldautomation nötig, die den Scheduler davon abhält, die Task ungehindert auszuführen (oder die E-Mail zu senden), nachdem die Kondition auf wahr gesetzt wurde.
Emails Eine Liste von E-Mails mit dieser Vorlage, die im System versendet worden sind.
Results Ein übersichtlicher Weg, die E-Mail-Historie einzusehen, zusammen mit Informationen, ob die Zustellung erfolgreich war oder nicht, und wenn nicht, aus welchem Grund.
Template History Eine Übersicht über alle Änderungen, die an einer Vorlage vorgenommen wurden.

Templates können in Text oder HTML erstellt werden. Wenn in einem Template html-tags eingefügt werden, müssen diese in einer Zeile stehen, da sonst die Darstellung abweichen kann von dem was man erwartet.

Beispiel für einen Use Case:

Du möchtest, dass deine Kunden nach dem Kauf deines Produkts eine E-Mail verschickt wird. Erstelle also eine fertige Vorlage, die du nur noch per Klick verschicken musst.

Wir freuen uns besonders, dir zeigen zu können, wie du deine Templates flexibel gestalten kannst. Zum Beispiel kannst du durch ein Mergefeld* als Grußformel den Namen des Users an den die Template gesendet wird. Ein einfacher Code würde dafür sorgen, dass das Datum automatisch aktualisiert und in deiner E-Mail angepasst wird. Aber dazu später mehr!

5.2. Wrapper

Ein Wrapper ist die Signatur und bestimmt das Design für deine E-Mail. Du kannst mehrere Wrappers erstellen und einen in deiner Vorlage verlinken. Wenn du einen Wrapper erstellst, musst du seinen Namen und die Konfiguration, für die er genutzt wird, definieren.

Dann hast du folgende Struktur:

Felder Beschreibung
Name Eigene, frei wählbare Bezeichnung für die Template. Das ist ein Pflichtfeld.
Configuration Referenz auf den Configuration-Datensatz, den du schon erstellt hast. Das ist ein Pflichtfeld.
Wrapper Referenz auf den Wrapper – eine E-Mail-Signatur, die das Design von deiner E-Mail konfiguriert.
Subject Der Betreff der E-Mail-Vorlage. Am meisten lässt du es einfach als {subject}, da hier wird einfach der Betreff dynamisch übernommen, was du in deine Vorlagen definiert hast.
Body Hier wird der Inhalt der E-Mail dargestellt. Du kannst das Design und die Signatur bestimmen. Du müsst hier das vorgegebene Text {body} lassen, damit das Inhalt deiner definierten Vorlagen übernommen wird. Das kannst du aber natürlich bestimmt, wo es in der E-Mail dargestellt werden soll, falls du ein Kopf oder Grüßformel hast. Hier wird HTML benötigt, um die Schriftart, Größe, Links, Bilder usw. zu definieren. Du siehst auch ein zweites Mergefeld, {id_pixel}. Das ist das Tracking Pixel. Das musst du hier lassen (ganz am Ende z.B.) damit das Tracking aktiviert wird und du verfolgen kannst, ob die E-Mail schon geöffnet wurde.

Wie bei den Templates, kann es mehr als einen Wrapper in einer Konfiguration geben. Wrappers können auch Mergefelder einschließen. Nur ein Wrapper kann aber bei einer Vorlage referenziert werden.

6. Scopes

Ein Scope-Datensatz ist immer einem bestimmten Template-Datensatz zugeordnet.

Scopes definieren, welche Datensätze für dieses Template berücksichtigt werden. Dabei beziehen sie sich auf die Datenstruktur der jeweiligen Salesforce Org. Mit Hilfe von Scopes kann außerdem der Betreff oder das Inhalt der zu versendeten E-Mail dynamisch angepasst werden. Scopes sind auch die Grundlage für Field Automations.

Eine Scope kann ein einzelner Datensatz oder eine Liste an Datensätzen beinhalten. Aus diesem Datensatz oder der Liste können weitere Listen mit Datensätzen aufgerufen werden, die entweder aus Unterobjekten oder übergeordneten Objekten von Datensätzen der ursprünglichen Liste bestehen. Zudem können auch immer Listen aus nicht verwandten Objekten erstellt werden. Aus diesen Listen wiederum können weitere Listen aufgerufen werden, und so weiter. Jede Liste kann außerdem sortiert und gefiltert werden, sodass nur bestimmte Datensätze in der Liste erscheinen. Zusätzlich können aus allen Datensätzen in jeder Liste Dateien abgefragt werden, die ebenfalls sortiert und gefiltert werden können.

Eine Scope wird immer anhand einer (bei Field Scopes) oder mehrerer (bei Free und List Scopes) Salesforce Datensätze definiert. Alle Standard und Benutzerdefinierten-Felder* von Datensätzen die über eine Scope in einem Template vorhanden sind, können in der E-Mailvorlage eingefügt werden.

Zum Erstellen einer Scope klickst du in einem Template auf den Button „Neu“. Hier wählst du nun den Scope-Typ aus, den du erstellen willst:

Scopes Beschreibung
Field Ein Field Scope referenziert maximal einen Datensatz. Die Primary Scope muss eine Field Scope sein. (Beispiel: Eine Opportunity)
Free Eine Free Scope kann mehrere Datensätze enthalten. Diese Datensätze müssen in keiner Verbindung zu einem der Field oder List Scopes stehen. (Beispiel: Alle Produkte in Salesforce)
List Eine List Scope kann mehrere Datensätze enthalten. Sie ist abhängig von einer anderen Scope. (Alle Opportunity-Produkte, die unterhalb der im Field Scope definierten Opportunity)

6.1. Field Scope

Ein Template muss mindestens eine Field Scope beinhalten. Über diesen Field Scope wird der Datensatz definiert, der als Ausgangspunkt für den E-Mailversand dient. Dies ist die sogenannte Primary Scope.

BITTE BEACHTEN:

Die Primary Scopes unterscheiden sich von untergeordneten Field Scopes dahingehend, als dass in der Parent Scope das Feld "Parent Field Name" nicht den Namen des Nachschlagbeziehungs*-Feldes aus dem Objekt in der Parent Scope enthält, da es hier keine Parent Scope gibt. Stattdessen enthält es immer einen Feldnamen aus dem aktuellen Objekt (das im Feld "Object Name" hinterlegt ist). Dies ist in den allermeisten Feldern das Feld "Id".

Folgende Felder sind im Field Scope vorhanden:

Felder Beschreibung
Name Pflichtfeld. Der Name der Scope sollte das jeweilige Objekt auf den ersten Blick identifizieren. Er wird auch in der E-Mailvorlage für die Mergefelder benötigt. Er darf keine Leerzeichen enthalten. Dadurch, dass der Scope Name nicht dem Objekt-Namen entsprechen muss, ist es möglich, in dem gleichen Template mehrere Scopes zu haben, die auf das gleiche Objekt verweisen. Z. B. eine Opportunity, die Abonnierungsprodukte enthält und einen Opportunity, die einzelnen Produkte enthält.
Parent Scope Dieser Scope ist die übergeordnete Scope. Ist keine Scope übergeordnet ist die aktuelle Scope eine Parent Scope.
Object Name Pflichtfeld. Der API-Name des Objekts auf das sich diese Scope bezieht. Beispiel: Opportunity für das Kontakt-Objekt.
Template Der Template-Datensatz auf das sich dieser Scope bezieht.
Parent Field Name Der Name des Feldes aus dem Objekt der Parent Scope, auf das sich diese Scope bezieht. Ist die aktuelle Scope eine Parent Scope (hat also keine Parent Scope), dann bezieht sich dieses Feld auf den Datensatz, aus dem das Template aufgerufen wird.

Attachments: Hier können Dateien (Files) aus dem Datensatz den diese Scope referenziert an die zu versendete E-Mail angehängt werden.

Attachments Beschreibung
Get Attachments Hier kannst du konfigurieren, ob Anhänge mitversendet werden sollen oder nicht.
Attachment Filters Filter, die einschränken, welche Anhänge in die Scope übernommen werden sollen.
Attachment Preselect Count Wie viele Anhänge sollen als Standard in der E-Mail angehängt werden.
Attachment Order Die Reihenfolge, in der die Anhänge aus dieser Scope in der E-Mail-Vorlage aufgelistet werden sollen.
Attachment Limit Die maximale Anzahl der Anhänge, die in dieser Scope übernommen werden sollen.

Beispiel für zwei Use Cases:

Use Case 1:

Wenn du eine E-Mail über einen Button in der Opportunity versenden willst, ist dieses Objekt dein Ausgangspunkt:

Bitte beachte, dass der Name der Scope nicht mit dem Namen des Objekts übereinstimmen muss.

Use Case 2:

Wenn du eine E-Mail über einen Button in der Opportunity mit Anhang versenden willst, ist das gleiche Objekt dein Ausgangspunkt aber mit folgenden Anhang-Konfigurationen:

Ein Anhang wird immer hier in der E-Mail eingefügt. Der Anhang ist in dem Fall das neueste Dokument, der in der Opportunity unter „Dateien“ gespeichert ist.

Damit Anhänge erforderlich für den E-Mailversand erforderlich sind, kannst du auf „Template“-Ebene das Checkbox „Attachment Required“ anhaken.

6.2. Free Scope

Eine Free Scope kann Datensätze enthalten, die weder mit dem Datensatz einer Field Scope noch mit den Datensätzen einer List Scope über Nachschlagbeziehungen verknüpft sind.

Die Free Scope beinhaltet folgende Felder:

Felder Beschreibung
Name Pflichtfeld. Der Name der Scope sollte das jeweilige Objekt auf den ersten Blick identifizieren. Er wird auch in der E-Mailvorlage für die Mergefelder benötigt. Er darf keine Leerzeichen enthalten. Dadurch, dass der Scope Name nicht dem Objekt-Namen entsprechen muss, ist es möglich, in dem gleichen Template mehrere Scopes zu haben, die auf das gleiche Objekt verweisen. Z. B. eine Scope aller aktiven Produkte und eine weitere Scope aller inaktiven Produkte.
Parent Scope Die dieser Scope übergeordnete Scope.
Object Name Pflichtfeld. Der API-Name des Objekts auf das sich diese Scope bezieht. Beispiel: Contact für das Kontakt-Objekt.
Template Der Template-Datensatz auf das sich diese Scope bezieht.
Relation Beschreibung
Section Name Da diese Scope mehr als einen Datensatz enthalten kann, muss ein Section Name definiert werden. In der E-Mailvorlage wird dieser Section Name dann genutzt um zu kennzeichnen, dass nun Daten aus dieser Scope ausgegeben werden sollen. Eine Ausnahme dabei ist wenn es nur ein Datensatz im System gefunden werden soll. Das wird über die Query Limit bestimmt.
Query Filters Filter, die einschränken, welche Datensätze in die Scope übernommen werden sollen.
Query Order Die Reihenfolge, in der die Datensätze aus dieser Scope in der E-Mail-Vorlage aufgelistet werden sollen.
Query Limit Die maximale Anzahl der Datensätze, die in dieser Scope übernommen werden sollen.

Attachments: Hier können Dateien (Files) aus dem Datensatz den diese Scope referenziert an die zu versendete E-Mail angehängt werden.

Attachments Beschreibung
Get Attachments Hier kannst du konfigurieren, ob Anhänge mitversendet werden sollen oder nicht.
Attachment Filters Filter, die einschränken, welche Anhänge in die Scope übernommen werden sollen.
Attachment Preselect Count Wie viele Anhänge sollen als Standard in der E-Mail angehängt werden.
Attachment Order Die Reihenfolge, in der die Anhänge aus dieser Scope in der E-Mail-Vorlage aufgelistet werden sollen.
Attachment Limit Die maximale Anzahl der Anhänge, die in dieser Scope übernommen werden sollen.

Beispiel für zwei Use Cases:

Use Case 1:

In deiner E-Mail sollen alle Produkte aufgelistet werden, die in Salesforce vorhanden sind. Da diese Produkte keine Verknüpfung zu deiner Opportunity unter diesem Account haben, benötigst du eine Free Scope.

Dein Unternehmen bietet vier unterschiedliche Produkte an. Eines davon (Produkt 3) wird allerdings nicht mehr produziert und ist deshalb inaktiv. Dieses Produkt willst du nicht auflisten.

Außerdem willst du alle Produkte alphabetisch absteigend nach der Produktfamilie auflisten.

Du erstellst eine Free Scope mit folgenden Werten:

Für eine absteigende Reihenfolge müsste bei Query Filter „Family DESC“ stehen. Das Query Limit muss frei gelassen werden, da du alle aktiven Produkte anzeigen lassen willst.

Use Case 2:

Oft sollen E-Mails in Namen vom aktiven Benutzer verschickt werden. Free Scopes sind sehr hilfreich dafür.

Du erstellst eine Free Scope mit folgenden Werten:

6.3. List Scope

Eine List Scope enthält Datensätze, die mit einem Datensatz aus der Parent Scope verknüpft sind.

Die List Scope beinhaltet folgende Felder:

Felder Beschreibung
Name Pflichtfeld. Der Name der Scope sollte das jeweilige Objekt auf den ersten Blick identifizieren. Er wird auch in der E-Mailvorlage für die Mergefelder benötigt. Er darf keine Leerzeichen enthalten. Dadurch, dass der Scope Name nicht dem Objekt-Namen entsprechen muss, ist es möglich, in dem gleichen Template mehrere Scopes zu haben, die auf das gleiche Objekt verweisen. Z. B. eine Scope aller männlichen Kontakte und eine Scope aller weiblichen Kontakte unter einem Account.
Parent Scope Pflichtfeld. Die dieser Scope übergeordnete Scope.
Object Name Pflichtfeld. Der API-Name des Objekts auf das sich diese Scope bezieht. Beispiel: Contact für das Kontakt-Objekt.
Template Der Template-Datensatz auf das sich diese Scope bezieht.
Relation Beschreibung
Related List Name Dies ist der Related List Name der Lookup-Verknüpfung. Bei Benutzerdefinierteobjekten wird dieser immer mit ‚__r‘ beendet. Der Related List Name kann über den Objekt Manager eingesehen werden.
Section Name Da diese Scope mehr als einen Datensatz enthalten kann, muss ein Section Name definiert werden. In der E-Mailvorlage wird dieser Section Name dann genutzt um zu kennzeichnen, dass nun Daten aus dieser Scope ausgegeben werden sollen.
Query Filters Filter, die einschränken, welche Datensätze in die Scope übernommen werden sollen.
Query Order Die Reihenfolge, in der die Datensätze aus dieser Scope in der E-Mail-Vorlage aufgelistet werden sollen.
Query Limit Die maximale Anzahl der Datensätze, die in dieser Scope übernommen werden sollen.

Attachments: Hier können Dateien (Files) aus dem Datensatz den diese Scope referenziert an die zu versendete E-Mail angehängt werden.

Attachments Beschreibung
Get Attachments Hier kannst du konfigurieren, ob Anhänge mitversendet werden sollen oder nicht.
Attachment Filters Filter, die einschränken, welche Anhänge in die Scope übernommen werden sollen.
Attachment Preselect Count Wie viele Anhänge sollen als Standard in der E-Mail angehängt werden.
Attachment Order Die Reihenfolge, in der die Anhänge aus dieser Scope in der E-Mail-Vorlage aufgelistet werden sollen.
Attachment Limit Die maximale Anzahl der Anhänge, die in dieser Scope übernommen werden sollen.

Beispiel für einen Use Case:

In deiner E-Mail sollen alle Opportunity-Produkte der Opportunity aufgelistet werden. Da diese Opportunity-Produkte mit der Opportunity über ein Lookup verknüpft sind, kannst du eine List Scope hierfür nutzen.

Du erstellt also eine List Scope mit folgenden Werten:

Es werden keine Query Filter benötigt, da wir alle Opportunity-Produkte auflisten wollen.

7. Users

Über dieses Objekt kannst du bestimmen, ob eine E-Mail von einem bestimmten Benutzer versendet werden sollen. Wenn du mehrere Möglichkeiten hast, kannst du eine Prioritätsreihenfolge bestimmen.

Du musst ein User definieren, wenn du automatisierte E-Mails versenden willst. Dazu braucht jeder betroffene Benutzer im System seine Adresse als eine Organisationsweite E-Mail-Adresse hinterlegt haben. Du findest mehr Informationen dazu in den Use-Case für diesen Abschnitt.

Bitte die Logik des Versenders beachten:

Wenn es bei den Usern unterschiedlicher Priorität gibt, werden alle Schritte mit einer Referenzmarke in dieser Logik für die User von Priorität 1, dann 2, dann 3 und so weiter wiederholt. Wenn es keine passende Lösung wird das System den aktiven User als Sender nehmen, also ist die E-Mail-Adresse des aktiven Users immer eine Rückfalloption.

Users Beschreibung
Name Pflichtfeld. Der Name der Nutzer-Datensatz. Das ist am meisten der gleiche Name, wie bei der Scope
Scope Pflichtfeld. Die entsprechende Scope auf der, dieser Nutzer bezieht
Template Pflichtfeld. Der Template-Datensatz auf das sich diese User bezieht
Priority Pflichtfeld. Die Reihenfolge vom Versender. Du kannst definieren, aus welcher Adresse eine E-Mail versendet sein sollte, falls eine Adresse nicht gefunden wird

Beispiel für einen Use Case:

Du willst, dass Rechnungen immer von der Buchhaltungsadresse versendet werden. Dafür musst du folgende Schritte machen:

  1. Ein Benutzer in Salesforce mit der E-Mail der entsprechenden Buchhaltungsadresse erstellen. Dieser Nutzer braucht keine vollständige Lizenz – es kann einfach ein „Chatter Nutzer“ sein. Der Nutzer muss aktiv sein. Dafür gehst du zu: Setup; Benutzer; Neu.
  2. Eine Organisationsweite E-Mail-Adresse für diesen Nutzer erstellen. Dafür gehst du zu Setup; Organisationsweite E-Mail-Adresse; Hinzufügen. Nur der Systemadministator braucht Zugang auf dieser E-Mail-Adresse. Vergiss nicht sie zu bestätigen.
  3. Ein Free-Scope erstellen und ein Query auf die Id von dem Buchhaltungsnutzer im Syste
  4. Dein User im Template konfigurieren:
Schritt 3
Schritt 3
Schritt 4
Schritt 4

8. Recipients

Recipients definieren den Empfänger der E-Mail.

Recipients Beschreibung
Name Pflichtfeld. Der Name der Recipient-Datensatz. Das ist am meisten der gleiche Name, wie bei der Scope.
Scope Pflichtfeld. Die entsprechende Scope auf der, dieser Kontakt bezieht.
Template Pflichtfeld. Der Template-Datensatz auf das sich dieser Recipient bezieht.
Email Field Name Pflichtfeld. In welchem Feld die Email Adresse gespeichert ist. Du musst hier den API-Name eintragen. Wenn der Empfänger einfach der Kontakt ist, ist hier „Email“ einzutragen.
Type Pflichtfeld. Du kannst definieren, ob der Empfänger der Hauptempfänger ist, oder ob er in CC oder BCC gesetzt sein sollte. Das ist nützlich z.B. wenn du immer dem Manager vom Ansprechpartner in CC informieren musst.

Beispiel für einen Use Case:

Wir definieren hier einfach ein Hauptempfänger.

  1. Ein Scope für einen Ansprechpartner erstellen. In unserem Beispiel, ist der Ansprechpartner einfach ein Lookup Feld zu einem Kontakt auf Ebene der Opportunity. Dafür benötigen wir also ein Field Scope.
  2. Jetzt müssen wir einen Recipient definieren.
Schritt 1
Schritt 1
Schritt 2
Schritt 2

9. Attachments

Mit Attachments ist es möglich ein statischer Anhang zu definieren. Das heißt diese Anhänge werden immer mitversendet und können nur verändert werden, in dem man der Anhang neu hochgeladen wird. Das unterscheidet sich mit dynamischen Anhängen, die auf Scope-Ebene zu definieren sind.

Scopes Beschreibung
Name Pflichtfeld. Der Name des Anhangs.
Order Pflichtfeld. Die Reihenfolge des Anhangs in der E-Mail.
Template Pflichtfeld. Der Template-Datensatz auf das sich dieser Anhang bezieht.

Beispiel für einen Use Case:

Du möchtest, dass ein PDF von den AGBs immer versendet wird. Das kannst du so konfigurieren:

Erstmal ein Attachment anlegen und einfach die Datei bei dem Bereich „Dateien“ hochladen.

10. Field Automations

Über eine Field Automation kann nach oder vor Versand einer E-Mail ein Feld aktualisiert werden. Ob eine Aktualisierung stattfindet, kann über eine Bedingung in der Field Automation gesteuert werden.

In welchem Datensatz bzw. welchen Datensätzen sich dieses zu aktualisierendem Feld befindet wird über eine Scope definiert.

Folgende Einstellungen können in der Field Automation vorgenommen werden:

Scopes Beschreibung
Template Pflichtfeld. Referenz auf das Template in dem sich diese Field Automation befindet.
Name Pflichtfeld. Name der Field Automation. Dieser dient nur für dich zur Unterscheidung verschiedener Field Automations.
Scope Pflichtfeld. Die Scope auf die sich diese Field Automation bezieht. Aktualisierungen beschränken sich auf Datensätze, die sich in dieser Scope befinden.
Update Before Email Sending Soll ein Feld vor Erstellung des Versands aktualisiert werden, dann muss diese Checkbox aktiv gesetzt werden. Das ist z.B. nützlich, wenn man den aktualisierten Wert dieses Feldes in der E-Mail anzeigen will.
Field Name Pflichtfeld. Der API-Name des Feldes das aktualisiert werden soll.
Operator Soll vor Aktualisierung abgeprüft werden, ob die Bedingung für die Aktualisierung erfüllt ist, muss ein Operator gesetzt werden.
Condition Value Der Wert auf den abgeprüft wird. Es wird immer auf das Feld geprüft das in Field Name referenziert ist. Über die Salesforce Mergefeld-Logik kann hier, anstatt eines festen Wertes, auch ein anderes Feld referenziert werden. Dieses muss sich allerdings in der gleichen Scope wie die Field Automation befinden.
New Value Pflichtfeld. Der neue Wert des Feldes. Über die Salesforce Mergefeld-Logik kann hier, anstatt eines festen Wertes, auch ein anderes Feld referenziert werden. Dieses muss sich allerdings in der gleichen Scope wie die Field Automation befinden.

Beispiel für einen Use Case:

Für deine Info-Mail möchtest du zwei Felder aktualisieren:

In das Benutzerdefiniertes-Feld ‚Information Erstelldatum‘ (API-Name: Information_Created_Date__c) in der Opportunity willst du das aktuelle Datum eintragen. Dieses soll auch in der E-Mail angezeigt werden.

In dem Benutzerdefiniertes-Checkbox-Feld ‚Infomail versendet‘ (API-Name: Infomail_Sent__c) willst du die Kontakte abhaken, die die E-Mail bekommen.

Du benötigst also zwei Field Automations:

Erste Field Automation:

Update Before Email Sending muss aktiv sein, weil wir das Datum auch in der E-Mail anzeigen lassen wollen.

Condition Value ist leer, weil wir das aktuelle Datum immer in das Feld eintragen wollen, wenn wir ein Dokument erstellen.

Im New Value-Feld steht „System.today()“. Dadurch wird das aktuelle Datum eingetragen.

Zweite Field Automation:

Wir wollen dass die Aktualisierung des Felds folgt, nur wenn der Checkbox nicht schon abgehakt ist.

11. Mergefelder

11.1. Einzelne Mergefelder

Mergefelder können Felder einlagern, die Feldwerte von verschiedenen Objekten enthalten. Sie aktualisieren automatisch, wenn das betroffene Feld auf dem anderen Objekt aktualisiert wird. Dieses Feature ist sehr hilfreich, wenn du willst, dass Inhalte von Templates an anderen Stellen der Instanz vorgenommene Änderungen widerspiegeln, ohne immer selbst an ihnen Änderungen vornehmen zu müssen.

Mit den Scopes, kannst du Mergefelder erstellen. Nehmen wir eine Vorlage, die wir erstellt haben, und fügen weitere davon hinzu.

Die Syntax für Scopes lautet so: {!Scopename.API-Feldname}.

Beispiel: Wir hatten vorher folgende Vorlage definiert:

Hallo Käufer,

vielen Dank für deinen Einkauf!

Viele Grüße,

dein Ansprechpartner

Wir wollen es aber hier dynamischer und persönlicher machen. Mit dem Einfügen von Mergefelder, wird deine Vorlage so ausschauen:

Hallo {!Contact.FirstName},

vielen Dank für deinen Einkauf!

Viele Grüße,

{!User.FirstName}

Dadurch wird die Mergefelder mit den Informationen aus Salesforce gefüllt.

11.2. Mergefelder aus Listen

Über List Scopes und Free Scopes werden Listen von Scopes aus Salesforce übergeben. Um die Datensätze aus diesen Scopes über Mergefelder auslesen zu können, muss in der E-Mailvorlage gekennzeichnet werden, wenn Daten aus solch einer List Scope oder Free Scope angezeigt werden sollen.

Sowohl in List Scopes als auch Free Scopes gibt es das Feld „Section Name“. Über dieses Feld wird die Liste definiert.

Die Liste kann in der E-Mailvorlage über folgende Syntax aufgerufen werden: „SectionName“ wird durch den Namen im Feld „Section Name“ in der jeweiligen List oder Free Scope ersetzt:

{!tableStart:sectionName}

Die Liste muss anschließend wieder geschlossen werden:

{!tableEnd:sectionName }

BITTE BEACHTEN:

Zwischen TableStart/TableEnd und dem Scope Name darf kein Leerzeichen sein.

Zwischen den beiden Tags (TableStart/TableEnd) können dann die eigentlichen Scopes aufgerufen werden. Dies geschieht genau so wie bei den Field Scopes. Es werden alle Scopes, die sich in der List oder Free Scope befinden nacheinander eingefügt.

Beispiel:

Alle Opportunity-Produkte sollen in der E-Mail aufgelistet werden.

Die Vorlage sieht in diesem Fall folgendermaßen aus:

Hallo {!Contact.FirstName},

vielen Dank für deine Anfrage!

Hier findest du die Liste von deinen angefragten Produkten:

{!tableStart:opportunityLineItems}

{!OpportunityLineItem.Name}, {!OpportunityLineItem.UnitPrice}

{!tableEnd:opportunityLineItems}

Viele Grüße,

{!User.FirstName}

11.3. Mergefelder aus wenn-dann Logiken

Es ist möglich, eine wenn-dann-Logik zu verwenden. Es gibt keine eingebetteten wenn-dann-Logiken in Templates und müssen erstellt werden.

Hier ist ein Beispiel für wenn-dann-Logiken in Vorlagen:

Sehr IF({!Contact.Salutation}=='Mr.','geehrter Herr ','geehrte Frau') {!Contact.LastName},

BITTE BEACHTEN:

Aktuell ist es möglich einen Wert aus einer Auswahlliste mit einem Wort zu berücksichtigen. Das heißt, dass z.B. {!Contact.Salutation}=='Dr. Prof.' wäre hier nicht erkannt.

11.4. Mergefelder in Scopes

Um in Scopes den Abruf von Datensätzen einzugrenzen, können im Feld „Query Filters“ Mergefelder genutzt werden. Diese haben folgendes Format:

{!ScopeName.Feldname}

Beispiel für einen Use Case:

Die Parent Scope referenziert einen Account. Der Name dieser Parent Scope ist ParentAccount.

Eine neue Free Scope soll nun alle Kontakte dieses Accounts beinhalten. Im Feld ‚Query Filters‘ muss nun eingeschränkt werden, dass nur die Kontakte, die dem Account zugewiesen sind, in der Scope enthalten sein sollen. Hierzu nutzt man die Account-Id die man folgendermaßen über das Mergefeld erhält:

AccountId = ‘{!ParentAccount.Id}‘

Bei der Suche nach den passenden Datensätzen wird das Mergefeld durch die Id des Accounts ersetzt.

Man beachte:

  1. Der Name des Datensatzes ist nicht Account, sondern der Name der Scope (ParentAccount). Somit können auch mehrere unterschiedliche Accounts in einem Template referenziert werden.    
  2. Das Mergefeld muss zwischen einfachen Apostrophen stehen, sonst wird eine Fehlermeldung ausgegeben.

11.5. Mergefelder in Field Automations

In Field Automations können Mergefelder sowohl im Feld „Condition Value“ als auch im Feld „New Value“ referenziert werden.

Somit kann sowohl die Bedingung als auch der neue Wert des Feldes dynamisch bestimmt werden.

Die Syntax ist hier etwas anders als bei den Scopes: Da bei den Field Automations nur Mergefelder aus der in der Field Automation angegebenen Scope genutzt werden können, wird hier nur der Feldname benötigt:

{!Feldname}

Beispiel für einen Use Case:

Nach Versand der E-Mail wollen wir in der Opportunity (Scopename: Opportunity) das Datum für eine Wiedervorlage eine Woche in die Zukunft setzen.

Hierzu haben wir zwei Formelfelder erstellt:

FollowUpDatePlusOneWeek (Formelfeld aus einem Datum, dass auf das Versanddatum 1 Woche aufschlägt: Information_Creation_Date__c + 8)

Die Felder in der Field Automation sehen wie folgt aus:

12. Scheduling

12.1. Scheduled Sending Date

In diesem Fall kann man mit Scheduling* der Versand der E-Mail auf einem späteren Zeitpunkt verschieben. Das kann man in Fachkreisen als Cronjob* bezeichnen. Beim Versenden einer E-Mail hast du die Option, das „Scheduled Sending Date“ zu bestimmen.

Die E-Mail soll erst um 17 Uhr versendet werden.

Diese Funktion bedeutet, dass die E-Mail als offene Aufgabe gespeichert wurde. Der Scheduler wird alle 5 Minuten überprüfen, ob jetzt das Datum und die Zeit ist, die du eingestellt hast. Sobald dies der Fall ist, wird die E-Mail versendet und die Aufgabe als „abgeschlossen“ markiert.

12.2. Schedules

Schedules können für einmalige oder regelmäßige automatisierte E-Mails benutzt werden. Es wird auch über ein Cronjob alle 5 Minuten geprüft, ob die Bedingungen treffen und ob eine E-Mail versendet werden soll.

Das Feld, das die Bedingung festlegt, ist immer boolean. Und man braucht immer eine Feldautomation, um den Planer davon abzuhalten, die Task ungehindert auszuführen (oder die E-Mail zu senden), nachdem die Bedingung als wahr gesetzt wurde. Wir brauchen dafür Benutzerdefinierte Felder, Schedules und Feldautomationen.

Um diese Funktion freizuschalten, gehe auf „Toggle Schedule“ im Configuration-Datensatz. Das Kontrollkästchen „Scheduled“ ist dann automatisch angekreuzt.

BITTE BEACHTEN

Es ist nicht möglich, Wrappers vor dem Versand zu verändern, wenn du scheduled E-Mails verwendest.

Beispiel für einen Use Case:

Sagen wir, du möchtest, dass dein Kunde jedes Jahr eine Geburtstagsmail bekommen soll.

Es wirkt zunächst einmal sehr einfach. Du brauchst ein Benutzerdefiniertes Feld (Bedingung), das das heutige Datum mit dem fälligen Datum vergleicht, aber nicht dem Jahr. Anderenfalls hätte die Person die Glückwünsche deiner Firma nur in dem Jahr erhalten, in dem sie geboren wurde, was ja keinen Sinn macht. Zweitens, sobald die Bedingung wahr wird, wird der Planer ungehindert die E-Mail alle 5 Minuten verschicken. Das bedeutet, dass wir eine weitere Bedingung setzen müssen, zum Beispiel ein Status-Update, oder das Datum, an dem die E-Mail versendet wurde, damit der Prozess unterbrochen wird. Es gibt immer noch ein paar Details, die wirst du aber gleich in dem Beispiel sehen.

Hier ist also der Plan.

  1. Erstelle ein Benutzerdefiniertes Formelfeld* z.B. „Next Birthday“, das die Rolle des Erinnerns übernehmen wird. Der Feldtyp ist „Datum“ mit folgender Formel: DATE(YEAR(TODAY()), MONTH(Birthdate), DAY(Birthdate))
  2. Erstelle ein anderes Benutzerdefiniertes Feld, z.B. „Send Birthday Email“ ein Formel-Kontrollkästchen, das die Aufgabe haben wird zu kontrollieren, ob der Geburtstag am heutigen Tag ist: TODAY() = Next_Birthday__c. Wir wollen aber nicht, dass die Person jede 5 Minuten den ganzen Tag E-Mails bekommt. Wir fügen also noch eine Bedingung hinzu, damit die E-Mail nur einmal versendet wird: AND(TODAY() = Next_Birthday__c, OR(NOT(Last_Birthday_Email_Sent__c = TODAY()),ISBLANK(Last_Birthday_Email_Sent__c))). Das Bedingungsfeld für Pläne muss auf jeden Fall ein Kontrollkästchen-Feld.
  3. Erstelle einen Plan. Gehe auf cloudworx.send; Geh auf dem „Schedules“-Reiter; Klick auf „Neu“; Gib einen Namen ein. Wähle für den Feldnamen den Namen deines Bedingungsfeldes, und wähle deine Vorlage.
  4. Dann geh zu Konfiguration und klicke auf „Toggle Schedule“. Jetzt wird der Planer alle 5 Minuten überprüfen, ob die „E-Mail versenden“ wahr ist. Wenn ja, wird die E-Mail versendet. Überprüfe, ob du die richtige E-Mail-Adresse in deinem Testkontakt hast, setze das Geburtsdatum auf den heutigen Tag und kreuze es an. In spätestens 5 Minuten solltest du eine E-Mail bekommen. Das bedeutet, dass der Plan funktioniert. Super! Aber Moment, was passiert, nächstes Jahr, wenn die Person noch Geburtstag hat? Hier benötigen wir ein paar zusätzliche Felder.
  5. Erstelle ein neues Benutzerdefiniertes Datums-Feld, das das Datum darstellen soll, wann die letzte Geburtstags-Mail versendet wurde. Das Datum kannst du über die Field Automations in der Vorlage setzen.
  6. Jetzt musst du genau überlegen, wie du dein Next_Birthday__c Feld verändern musst. Du musst das Datum, an dem die letzte Geburtstags-Mail versendet wurde, erhöhen: DATE(YEAR(Last_Birthday_Email_Sent__c) + 1, MONTH(Birthdate), DAY(Birthdate)). Aber was, wenn man noch überhaupt keine Geburtstags-Mail versendet hat? Das bedeutet, dass die E-Mail dieses Jahr, wenn der Geburtstag kommt, versendet werden muss: DATE(YEAR(TODAY())), MONTH(Birthdate), DAY(Birthdate)). Was, wenn der Geburtstag gestern war? Der Formel zufolge ist die Bedingung wahr. Was du brauchst, ist also: DATE(IF(DATE(YEAR(TODAY()),MONTH(Birthdate), DAY(Birthdate)) < TODAY(),YEAR(TODAY()) + 1, YEAR(TODAY())), MONTH(Birthdate), DAY(Birthdate))
Schritt 3
Schritt 3

13. SMTP

Eine weitere mächtige Funktion von cloudworx.send ist die Möglichkeit, E-Mails durch den SMTP-Server zu senden. Hier die Vorteile:

  • Du kannst die Salesforce-E-Mail-Limitation von 5000 E-Mails pro Tag umgehen       
  • In Salesforce Classic liegt das Größenlimit für angehängte File bei 25 MB. In Lightning Experience liegt das Limit bei 2 GB   
  • Das Größenlimit für eine E-Mail liegt bei 25 MB, mit einem Limit pro File von 5 MBs
  • Für jeden entsprechenden Record werden alle mit der E-Mail versendeten Anhänge dupliziert, was dein Datenlimit beeinflusst
  • Der E-Mail-Text und HTML werden zu 32 KB komprimiert

Die E-Mails, die du über cloudworx.send versendest, sehen aus, als seien sie über deinen E-Mail-Provider gesendet worden und werden nicht nur in deiner Salesforce-Org, sondern auch in deinem E-Mail-Postausgang gespeichert.

Die E-Mails, die via SMTP verschickt werden, werden asynchron versendet.

  1. Gehe in cloudworx.send und finde den Reiter „Smtp Settings“ und klick auf „Neu“
  2. Wähle deine Configuration-Datensatz aus und den betroffene Salesforce-Benutzer. Gib dann die spezifischen SMTP-Settings ein. Du kannst sie normalerweise in den Einstellungen deines E-Mail-Providers finden
  3. Für jeden Benutzer wiederholen, für den SMTP benötigt wird
Schritt 3
Schritt 3

Nachdem du deine SMTP-Einstellungen eingestellt hast, musst du sichergehen, dass das Häkchen beim Kontrollkästchen „Deaktiviere SMTP“ im Configuration-Datensatz nicht gesetzt ist.

14. E-Mails versenden

14.1. E-Mail über Schaltfläche versenden

Über eine Schaltfläche in einem Datensatz kann eine E-Mail versendet werden, dass anschließend in diesem Datensatz als Aufgabe gespeichert wird.

Zum Erstellen einer Schaltfläche werden Administratorrechte benötigt.

Im Setup gelangt man über den Objekt-Manager auf das gewünschte Objekt und dort über den Menüpunkt „Schaltflächen, Links und Aktionen“ und der Schaltfläche „Neue Schaltfläche/neuer Link“ auf die Seite zur Erstellung einer Schaltfläche:

Neben der Bezeichnung und dem Namen der Schaltfläche muss auch der Anzeigetyp ausgewählt werden. Hier wird „Schaltfläche für Detailseite“ angezeigt.

Als Inhaltsquelle wird eine URL eingetragen. Die URL hat folgendes Format:

/apex/cwsd__csSendEmail?id={!Objekt.Id}&template={!“cloudworx Id“}

Es werden drei Parameter benötigt:

id: Die Salesforce Id des Datensatzes der als Ausgangspunkt (also für die Primary Scope) genutzt werden soll. In diesem Beispiel wird ein Button auf der Rechnung (Invoice__c) erstellt und somit ein Mergefeld für die Invoice-Id verwendet.

template: Die cloudworx Id des Templates. Sie wird automatisch bei Erstellung eines Template-Datensatzes erstellt.

 

BITTE BEACHTEN:

Die Schaltfläche muss nach Erstellung noch in das Seitenlayout des Objekts eingefügt werden.

 

Beispiel E-Mailversand:

Wenn du auf der Schaltfläche klickst, öffnet sich ein Fenster mit der vorausgewählten Vorlage. Vor dass du die E-Mail versendest, kannst du Anpassungen vornehmen.

Zusätzlich können noch Empfänger – auch als CC oder BCC hinzugefügt. Die Adressen können manuell eingegeben werden oder eine Suche nach bestehenden Kontakten ist möglich.

14.2. Automatisierter E-Mailversand über Prozessgenerator erstellen

Über cloudworx.send können E-Mails auch automatisiert versendet werden. Über den Prozessgenerator* lässt sich dies einfach abbilden.

Aufgrund von Beschränkungen auf Seiten von Salesforce können E-Mails hier nur asynchron erstellt werden. E-Mail-Vorlagen können nicht vor Versand manuell angepasst werden.

In unserem Beispiel wird eine E-Mail versendet, wenn in der Opportunity der Status auf „Abgeschlossen und gewonnen“ geändert wird.

Nach Erstellung des Prozesses und Auswählen des Objekts, wird zuerst die Bedingung erstellt. Anschließend kann cloudworx.send über „Aktion ausführen“ definiert werden:

Parameter Beschreibung
cloudworxTemplateId Pflichtfeld. Die cloudworx Id des Templates aus dem Template-Datensatz.
parentId Pflichtfeld. Die Salesforce Id des Datensatzes der als Ausgangspunkt (also für die Primary Scope) genutzt werden soll.
attachments Hier können weitere Anhänge anhand der Salesforce Id (Attachment Id oder ContentDocumentId) and das Dokument angefügt werden.

14.3. Automatisierter E-Mailversand über Apex erstellen

Der E-Mailversand kann auch über Apex abgerufen werden. Die gleichen Bedingungen treffen. Hier braucht man Kenntnisse in Apex. Die Parameter sind folgende:

Parameter Beschreibung
parentId Die Salesforce Id des Datensatzes der als Ausgangspunkt (also für die Primary Scope) genutzt werden soll.
cloudworxTemplateId Die cloudworx Id des Templates aus dem Template-Datensatz.
attachments Hier können weitere Anhänge anhand der Salesforce Id (Attachment Id oder ContentDocumentId) and das Dokument angefügt werden.
evaluateFieldAutomationsBeforeSending Hier kannst du definieren, ob die Field Automations vor dem Versand berücksichtigt werden sollen.
evaluateFieldAutomationsBeforeSending Hier kannst du definieren, ob die Field Automations nach dem Versand berücksichtigt werden sollen.

Wenn in der Opportunity der Status auf „Abgeschlossen und gewonnen“ geändert wird, wird die E-Mail versendet.

Beispiel Code für E-mailversand. Er kann über Trigger* oder Scheduler abgerufen werden.
Beispiel Code für E-mailversand. Er kann über Trigger* oder Scheduler abgerufen werden.

15. E-Mails nach Versand

Du findest alle gesendeten E-Mails als gespeicherten Aufgaben unter die Rubrik „Aktivität“.

Wenn du auf der Aufgabe klickst, siehst du alle Informationen zu der E-Mail. Dazu in der Visualforce-Seite* wurden alle Mergefelder interpretiert, die HTML-Tags wurden formatiert und der Wrapper wird eingeblendet.

16. Glossar

API

Steht für Application Programming Interface. Ein Interface, das sich mit Drittanbieter-Anwendungen austauscht und interagiert.

App-Password

Ein von E-Mail-Anbietern generierter Sicherheitscode, um Anwendungen von Drittanbietern zu verbinden, ohne eine Multi-Faktor-Authentifikation bereitstellen zu müssen.

Asynchron

Asynchrones Senden lädt die Benachrichtigung des Erfolgs oder Gelingens an einen anderen Thread, womit es gleichzeitig die Performance in manchen Situationen verbessert. Dies ist eine sehr wichtige und fortgeschrittene Funktion. Sie wird beim Versenden von größeren Anhängen empfohlen, um das Salesforce Zeitlimit zu vermeiden. Der größte Nachteil dieser Methode: solange E-Mails asynchron versendet werden, wird vom Server keine Antwort erwartet, eine andere zu versenden, damit der Sender keine Fehlermeldung bekommt, wenn die Nachricht nicht wirklich versendet wurde. Sehr wichtig für Callouts*, solange nach der DML Operation* keine Updates erlaubt sind. Callout sind nicht erlaubt, wenn eine ausgeführte Transaktion noch aussteht. Ohne asynchrones Senden gibt es immer eine Wiederholung, wenn die Transaktion nicht erfolgreich war. Darum macht es Sinn, asynchron zu senden, da es die zweiten Transaktions-Abzweigung ermöglicht, ohne dass der Abschluss der ersten abgewartet werden muss.

Benutzer

Jemand, der Salesforce benutzt. Mit einem Usernamen und einem Passwort in die Org einloggen. Einem User oder eine Gruppe von Usern können bestimmte Zugriffsrechte auf das Erstellen, Bearbeiten und Löschen von Daten Informationen gegeben werden.

Berechtigungssätze

Eine Sammlung von Extra-Berechtigungen, um die Sicherheitseinstellungen eines Users auf ihrem Profil zu erweitern

Callout

Ein Apex-Callout befähigt dich, dein Apex eng mit einem externen Service zu verknüpfen, indem es einen Anruf an einen externen Web-Service leitet oder eine http-Anfrage vom Apex-Code, und dann die Antwort zu erhalten. Apex stellt Integrationen mit Web-Services, die SOAP und WSDL, oder http Services (RESTful Services) nutzen.

Cronjob

Ein Cronjob führt zeitbasiert Prozesse auf Serversystemen aus, zum Beispiel um Logdateien periodisch zu aktualisieren.

Cross-Site-Scripting (XSS)

Eine Art von Web-Anwendung-Sicherheits-Verwundbarkeit, die am häufigsten in Web-Anwendungen gefunden werden kann. XSS-Attacken befähigt die Attackierenden dazu, Skripte von der Klienten-Seite in Webseiten einzuspeisen, das von anderen Nutzern betrachtet werden. Ein cross-site-Skripting-Verwundbarkeit könnte von den Attackierenden benutzt werden, um Zugriffskontrollen, wie die Selber-Ursprung-Regel zu umgehen.

Datensatz

Daten, die in einem Objekt gespeichert sind.

Datensatzseite

Die Darstellung von der Seite, die die Informationen eines Datensatzes enthält.

Datensatztyp

Ein Seitenlayout, das für eine bestimmte Nutzung des Objekts individuell definiert wird.

DML Operation

Durch die Nutzung von DML kannst du neue Records einsetzen und zu der Datenbank überweisen. Du kannst also das die Feld-Werte von existierenden Records updaten.

Formelfeld

Formelfelder sammeln und „manipulieren“ Daten von einem oder vielen anderen Feldern. Sie können Berechnungen, Links, Text und vieles mehr enthalten. Diese Felder können nicht bearbeitet werden.

Tracking

Gesammelte Informationen über die Aktivitäten des Klienten, z.B. wann die E-Mail geöffnet wurde oder wann ein bestimmter Teil angeklickt wurde.

Seiten-Layout

Die Gestaltung von Feldern auf der Übersicht von Salesforce kann nach deinen Wünschen gestaltet werden. Wähle die Reihenfolge, die Anordnung, welche Felder du angezeigt haben willst, und wo du sie gerne platziert hättest,

Mergefelder

Mergefelder können Felder beherbergen, die Feldwerte von verschiedenen Objekten anzeigen können. Sie können automatisch Inhalte anpassen, wenn das betroffene Feld auf dem anderen Objekt upgedated wird.

Nachschlagbeziehung (Lookup)

Eine Nachschlagbeziehung ist ein Feldtyp in Salesforce. Er stellt eine Beziehung zwischen zwei Salesforce-Objekten her. Im Kontakt gibt es z. B. eine Nachschlagbeziehung zum Account.

Objekt

Eine Sammlung von in Salesforce enthaltenen Datensätzen. Ein Objekt entspricht einer Kategorie, ähnlich den Tabellen und Spalten in Excel. Beispiele von Objekten, die in Salesforce bereits angelegt sind, sind Accounts, Kontakte und Opportunities.

Prozessgenerator

Eine Tool von Salesforce für einfache Automationen.

Scheduler

Der Apex-Scheduler lässt dich eine Ausführung so lange nach hinten verschieben, dass du Apex-Kategorien zu einer festgelegten Zeit ausführen kannst. Dies ist ideal für die tägliche oder wöchentliche Aufrechterhaltung von Tasks, die Batch Apex benutzen. Um die Vorteile des Schedulers zu nutzen, schreibe eine Apex-Klasse, die das Schedule-Interface implementiert, und dann schedule es für die Ausführung auf ein spezielles Schedule.

Template

Vordefinierte Einstellungen für den Versand von E-Mails.

Tracking Pixel

Ein Tracking Pixel ist ein HTML-Code-Schnipsel, das geladen wird, sobald ein User eine Webseite besucht oder eine E-Mail öffnet. Es hilft dabei, das Verhalten eines Users, sowie Conversions zu tracken. Mit einem Tracking Pixel können Daten zum Online Marketing, Webanalyse und E-Mail -Marketing gesammelt werden.

Trigger

Ein Trigger ist ein Code-Auslöser in Apex. Über ein Trigger kann man Code abrufen, um eine Aktion in Salesforce durchzuführen.

XSS

Eine Art Web-Anwendung-Sicherheits-Verletzlichkeit, die typischerweise in Web-Anwendungen gefunden werden kann. XSS-Attacken befähigt die Attackierenden dazu, Skripte von der Klienten-Seite in Webseiten einzuspeisen, das von anderen Nutzern betrachtet werden.



Impressum | Datenschutz