Versenden von individualisierten Trigger-Mails - SendTriggerMails

RequestParameter: SendTriggerMailsRequest
Responseparameter: SendTriggerMailsResponse

Diese Methode kann zum Versenden von ereignisabhängigen Kampagnen (Trigger-Mails) verwendet werden, um Empfänger mit maßgeschneiderten Inhalten zu versorgen (z.B. Buchungs- oder Bestellbestätigungen). Als Voraussetzung für die Benutzung der Methode muss in mailworx eine E-Mail Kampagne mit allen Basisinformationen wie z.B. Einleitung und Abschluss erstellt werden. Anschließend werden mittels diese Methode die übrigen Abschnitte, welche für jedes Trigger Mail unterschiedlich sind, übergeben, in die Kampagne integriert und schließlich die Kampagne an den jeweiligen Abonnenten gesendet.


Der Parameter SendTriggerMailsRequest enthält alle Informationen, um den Versand durchführen zu können:

CampaignId

Die Guid der zu versendenden E-Mail Kampagne. Diese E-Mail Kampagne muss ereignisabhängig sein. Außerdem muss die ereignisabhängige Kampagne den Inhaltstyp „Individualisierte Inhalte“ aufweisen.

TriggerMails

Eine Liste der zu versendenden Trigger mails (siehe Klasse "TriggerMail").

TriggerMailIds

Eine Liste von IDs der zu versendenden Trigger-Mails. Die IDs erhalten Sie beim Generieren von Trigger-Mails.

 

Die Klasse TriggerMail ist wie folgt aufgebaut:

SubscriberId

Die Guid des Abonnenten, an den dieses eine Trigger Mail geschickt werden soll. Beispielsweise können Sie die Guid des Abonnenten mit der Methode ExportSubscribers abrufen.

Sections Eine Liste jener Abschnitte, welche in das Trigger Mail für diesen Abonnenten integriert werden sollen.
Data Eine Liste von Daten des Abonnenten, die im Trigger Mail gewisse Platzhalter ersetzen sollen (siehe Klasse „TriggerMailData“). Die Platzhalter müssen von einem mailworx Benutzer fix in der zu versendenden E-Mail Kampagne positioniert werden.

 

Die Klasse TriggerMailData ist wie folgt aufgebaut:

Key

Die Bezeichnung des konkreten Datenwerts. Der Platzhalter der in der E-Mail Kampagne positioniert ist, muss exakt denselben Namen aufweisen, wie diese Bezeichnung.

Value Der konkrete Datenwert mit dem der Platzhalter ersetzt werden soll.

 

Die Eigenschaft „Data“ kann dazu verwendet werden, nicht veränderbare Eigenschaften der Kampagne (wie z.B. Betreff, Absender, Absenderadresse, usw.) dennoch personalisieren zu können. Der Vorteil der Personalisierung über die Eigenschaft „Data“ gegenüber der normalen Personalisierung mittels Textbausteinen oder Abonnentenfeldern ist jener, dass die mitgegebenen Daten für jedes Trigger-Mail fix sind und sich nach dem Versand nicht mehr verändern lassen. Normale Abonnentendaten können sich durch einen erneuten Import ändern und sind daher nicht fix.

 

Beispiel für die Anwendung von „Data“:

In der zu versendenden E-Mail Kampagne wurde von einem mailworx Benutzer im Betreff folgender Platzhalter eingegeben: „Ihre Bestellung [%mwtm:bestellnummer%]“. In der Eigenschaft „Data“ sollte nun ein Eintrag mit dem Namen „bestellnummer“ (Eigenschaft Key der Klasse TriggerMailData) vorhanden sein. Ist das der Fall, so wird der Platzhalter im Betreff mit dem jeweiligen Wert (Eigenschaft „value" der Klasse TriggerMailData)

TemplateRequest templateRequest = new TemplateRequest();
templateRequest.SecurityContext = GetSecurityContext();

SectionDefinitionRequest secDefRequest = new SectionDefinitionRequest();
secDefRequest.SecurityContext = GetSecurityContext();
secDefRequest.Template = agent.GetTemplates(templateRequest).Templates.First(n => n.Name.Equals("Vorlage Online Bestellungen"));

// Get the "articlesmall" section definition
SectionDefinition article = agent.GetSectionDefinitions(secDefRequest).SectionDefinitions.FirstOrDefault(n => n.Name.Equals("Artikel klein"));

// Create the section which should be displayed in the trigger mail
Section section = new Section();
section.Created = DateTime.Now;
section.SectionDefinitionName = article.Name;
section.Fields = article.Fields;
section.StatisticName = "Bestellungsübersicht";

foreach (Field field in article.Fields) {
	   if (field.InternalName.Equals("as_hl")) { // Headline
			  field.UntypedValue = "Ihre Bestellung [%mwtm:bestellnummer%]";
	   }
	   else if (field.InternalName.Equals("as_text")) { // Content
			  field.UntypedValue = String.Concat(@"
			  Folgende Produkte wurden bestellt:<br />
			  - Lenovo IdeaPad 300<br />
			  - HP Officejet 7612 e<br />
			  <br />",
			  "Klicken Sie <a href=\"http://www.mailworx.info?bestellnr=[%mwtm:TriggerMailBestellNr%]&mxLinkCategory=Bestellung online ansehen\">hier</a> um Ihre Bestellung online anzusehen.");
	   }
}

TriggerMailData data = new TriggerMailData() {
	   Key = "bestellnummer",
	   Value = "954311567"
};

// Assign the section, the data and specify a subsriber id to send the trigger mail
TriggerMail triggerMail = new TriggerMail() {
	   Data = new TriggerMailData[] { data },
	   Sections = new Section[] { section },
	   SubscriberId = new Guid("d9a585bc-1324-4c76-b6be-4ada4dcaa26c")
};

SendTriggerMailsRequest request = new SendTriggerMailsRequest();
request.SecurityContext = GetSecurityContext();
request.CampaignId = new Guid("5289f2e1-ea6b-4a9a-954d-fe3d7789dfe9");
request.TriggerMails = new TriggerMail[] { triggerMail };

SendTriggerMailsResponse response = agent.SendTriggerMails(request);

foreach (var error in response.Errors) {
	   Console.WriteLine($"Could not send mail to '{error.SubscriberId}'. The error was: {error.Error}");
}

JSON Beispiel

 

$.ajax("http://sys.mailworx.info/Services/JSON/ServiceAgent.svc/SendTriggerMails", {
	type: "POST",
	dataType: 'json',
	data: JSON.stringify({
		request: {
			SecurityContext: GetSecurityContext(),
			CampaignId: '5289f2e1-ea6b-4a9a-954d-fe3d7789dfe9',
			TriggerMails: [{
				SubscriberId: 'd9a585bc-1324-4c76-b6be-4ada4dcaa26c',
				Sections: [
					{
						SectionDefinitionName: 'Artikel klein',
						StatisticName: 'Bestellungsübersicht',
						Fields: [
							{
								__type: 'TextField:#Eworx.Mailworx.ServiceInterfaces',
								InternalName: 'as_hl',
								UntypedValue: 'Ihre Bestellung [%mwtm:TriggerMailBestellNr%]'
							},
							{
								__type: 'TextField:#Eworx.Mailworx.ServiceInterfaces',
								InternalName: 'as_text',
								UntypedValue:  'Folgende Produkte wurden bestellt:<br />' + 
								'- Lenovo IdeaPad 300<br />' +
								'- HP Officejet 7612 e<br />'+
								'<br />'+
								'Klicken Sie <a href=\"http://www.mailworx.info?bestellnr=[%mwtm:TriggerMailBestellNr%]&mxLinkCategory=Bestellung online ansehen\">hier</a> um Ihre Bestellung online anzusehen.'
							}
						]
					}
				],
				Data: [
					{
						Key: 'TriggerMailBestellNr',
						Value: '954311567'
					}
				]
			}]
		}
	}),
	contentType: 'application/json; charset=utf-8',
	success: function (response) {
		alert('success');
		console.log(response);
	},
	error: function (message) {
		alert('error has occured');
		console.log(arguments);
	}
});