====== Import: Welche Möglichkeiten bietet der Batch-Prozess? ======
===== Manueller Import =====
Bitte laden Sie csv-Dateien mit Adressen oder Zielgruppen mit Kunden-IDs oder E-Mail-Adressen nach /upload/manual.
Klicken Sie auf //Adressen > Listen//, wählen Sie die Aktion //Adressen importieren// und folgen Sie den dort beschriebenen Schritten. Eine Anleitung finden Sie im Artikel //"[[de:how_to_upload_addresses]]"//.
===== Automatischer Import =====
Es wird ein Set an Standard-Feldern angelegt. Individuelle Felder können definiert werden. Bei der Wahl der Feldbezeichnung berücksichtigen Sie, dass diese als Variablen in allen E-Mail-Bestandteilen genutzt werden können und das Schema möglichst einheitlich sein sollte.
Grundsätzlich sind zwei Typen zu unterscheiden:
==== Vollständiger Import ====
Es wird der komplette Positiv-Datenbestand täglich zur Verfügung gestellt und synchronisiert. Die Selektion von Zielgruppen erfolgt in promio.connect bzw. durch Import von Zielgruppen-Definitionen (Kunden-ID, E-Mail, interne promio.connect ID; jeweils einspaltige csv).
==== Zielgruppen-Import ====
Es werden lediglich Zielgruppen, also Untermengen des Gesamtbestandes, importiert. Hierbei stehen folgende Optionen zur Verfügung:
* Prüfung auf neue Dateien erfolgt täglich oder alle 5 Minuten
* Die Zielgruppe steht anschließend im System bereit zur weiteren Verarbeitung (Standard).
* Die Zielgruppe wird automatisch in einen bestehenden Newsletter-Verteiler eingepflegt und steht somit anschließend als Auto-Zielgruppe zur Verfügung. Hierüber lassen sich sehr einfach Auto-Kampagnen (Lifecycle-Mailings) steuern.
==== Generelle Optionen ====
* Untermandanten ja/nein: Sollen in einer Datei auch Adressen für auswählbare Untermandanten zusammengefasst werden? Die Zuordnung erfolgt über das Feld b2b_user_id.
* Uhrzeit der Prüfung auf neue Dateien (nur bei täglicher Prüfung, in vollen Stunden 0-24)
==== Anforderungsliste für einen automatischen Import ====
|**Mandant**|Mandantennummer|
|**Testdatei**|Diese muss in Charset, Formatierung (csv, bz2, Z), Datenstruktur (Anzahl + Reihenfolge der Spalten, Spaltentrenner, Feldbegrenzer) genau den Dateien entsprechen, die später zum Import hochgeladen werden.|
|**E-Mail-Adresse/n**|Für den Empfang der Statusmails (Logfiles) aller Importe.|
|**Adressmanagement-Merkmal**|custID ODER mail; kann auch abweichend zur Konfiguration des Mandanten gewählt werden.|
|**Zeitpunkt des Imports**|Prüfung, ob Datei auf dem Server liegt, erfolgt: täglich um x Uhr ODER automatisch alle 5 min.|
|**Anlegen einer neuen Zielgruppe**|Pro Import ODER Befüllung einer Auto-Zielgruppe.|
|**Falls Auto-Zielgruppe**|1) Hinzufügen oder Ersetzen der Auto-ZG, mögliche Methoden: \\ - replace \\ - replaceNoResubscribes \\ - add \\ - addNoResubscribes \\ \\ 2) bei vollständiger Ersetzung der Auto-ZG: \\ Abmelden aller User, die nicht in der aktuellen Datei enthalten sind, erwünscht?* \\ * Bitte beachten Sie, dass diese Einstellung nicht empfohlen und nur möglich ist, wenn eine nächtliche vollständige Synchronisation stattfindet, da die User auf die Negativliste gesetzt werden.|
==== Import-Struktur ====
Dateistruktur / Nomenklatur Namen:
* Format: .csv
* Kompression (optional): bzip2, gzip mit den Endungen .bz2, .Z
* Verschlüsselung (optional): DES openssh
* Filename:
* [SENDERID]_[NAME]_[CHARSET]_[IMPORTTEMPLATEID]_YYYYMMDDHHMMSS.csv
* SENDERID: ID des Mandanten, in welchen die Datei importiert wird
* NAME: Zielgruppenbezeichnung, die anschließend als Name im System benutzt wird. Hierbei keine Umlaute, Sonderzeichen und Unterstriche benutzen
* CHARSET: [utf8|latin]
* IMPORTTEMPLATEID: Integer, ein von promio.net gelieferter Wert, der alle Informationen für den definierten FileTyp definiert (Spalten und Typ-Zuordnungen müssen immer konstant sein)
* Validierung: Folgende Werte werden automatisch validiert:
* Filename auf korrekte Syntax
* Anzahl der Zeilen in der Datei vs. Anzahl der Zeilen nach Import in eine temporäre Tabelle
* Typ mail auf korrekte Syntax und unique Werte
* Logfile: Es wird nach Import ein Logfile im System hinterlegt und zusätzlich eine E-Mail an einen zu liefernden Verteiler mit Fehler- und Warnungsinformationen versendet
* die Dateien sind auf dem promio.connect SFTP-Server in das Verzeichnis /upload/auto/ hochzuladen
===== Satzbeschreibung Personendaten (intern) =====
Standard-Feldstruktur (kann beliebig erweitert werden).
|**Feldname**|**Feldtyp**|**Standard**|**Beschreibung/Befüllung**|
|b2b_user_id|int(8)|0|interne Mandanten-ID: [xxxxx]|
|id|int(12)| |interne Kunden-ID. Wird automatisch durch System befüllt.|
|mail|varchar(255)| | |
|nick|varchar(255)| | |
|vorname|varchar(255)| | |
|name|varchar(255)| | |
|gender|tinyint(1)|0|1=male, 2=female|
|mailerror|tinyint(1)|0|interner letzter Bounce-Status. Wird automatisch durch System befüllt.|
|unsubscribe|tinyint(1)|0|interne Unsubscribe-Markierung. Wird automatisch durch System befüllt.|
|source|tinyint(1)|0|interne Import-Kennung. Wird automatisch durch System befüllt.|
|strasse|varchar(255)| | |
|plz|varchar(255)| |Postleitzahl|
|ort|varchar(255)| | |
|custID|varbinary(255)| |externe Kunden-ID|
|country|varchar(255)| |Ländercode: de, at, ch, ...|
|reg_datetime|datetime|0000-00-00 00:00:00|Registrierungszeitpunkt|
|reg_ip|varchar(255)| |Registrierungs-IP|
|tsCreated|datetime|0000-00-00 00:00:00|Zeitpunkt der Erstellung des Datensatzes. Wird automatisch durch System befüllt.|
|tsLastUpdate|timestamp|on update CURRENT_TIMESTAMP|Timestamp der letzten Änderung des Datensatzes. Wird automatisch durch System befüllt.|
|agr|tinyint(3)|0|Werbe-Einverständnis (1=erteilt)|
|tel|varchar(255)| |Telefonnummer|
|birthday|date|0000-00-00|Geburtsdatum|
|pm_image|varchar(255)| |Link zum Bild der Person(Adressrecherche). Kann manuell befüllt werden.|
|pm_reputation_score|tinyint(1)| |Interner Reputations-Scorewert. Wird automatisch durch System befüllt.|
|special_1|varchar(255)| |Platzhalter für künftige Verwendung|
|special_2|varchar(255)| |Platzhalter für künftige Verwendung|
|special_3|varchar(255)| |Platzhalter für künftige Verwendung|
|special_4|varchar(255)| |Platzhalter für künftige Verwendung|
|special_5|varchar(255)| |Platzhalter für künftige Verwendung|
|special_6|varchar(255)| |Platzhalter für künftige Verwendung|
|special_7|varchar(255)| |Platzhalter für künftige Verwendung|
|special_8|varchar(255)| |Platzhalter für künftige Verwendung|
|special_9|varchar(255)| |Platzhalter für künftige Verwendung|
|special_10|varchar(255)| |Platzhalter für künftige Verwendung|
|html_version|tinyint(1)| |Ansichtsformat E-Mail|
|test_flag|tinyint(1)|0|interne Markierung für Test-Empfänger. Wird automatisch durch System befüllt.|
|test_letter_id|int(6)|0|interne Markierung für Test-Empfänger. Wird automatisch durch System befüllt.|
===== Satzbeschreibung Personendaten für Import =====
|**Feldname**|**Feldtyp**|**Standard**|**Beschreibung/Befüllung**|
|b2b_user_id|int(8)|0|interne Mandanten-ID: [xxxx]|
|id|int(12)| |interne Kunden-ID|
|mail|varchar(255)| | |
|nick|varchar(255)| | |
|vorname|varchar(255)| | |
|name|varchar(255)| | |
|gender|tinyint(1)|0|1=male, 2=female|
|strasse|varchar(255)| | |
|plz|varchar(255)| |Postleitzahl|
|ort|varchar(255)| | |
|custID|varbinary(255)| |externe Kunden-ID|
|country|varchar(255)| |Ländercode: de, at, ch, ...|
|reg_datetime|datetime|0000-00-00 00:00:00|Registrierungszeitpunkt|
|reg_ip|varchar(255)| |Registrierungs-IP|
|agr|tinyint(3)|0|Werbe-Einverständnis (1=erteilt)|
|tel|varchar(255)| |Telefonnummer|
|birthday|date|0000-00-00|Geburtsdatum|
|special_1|varchar(255)| |Platzhalter für künftige Verwendung|
|special_2|varchar(255)| |Platzhalter für künftige Verwendung|
===== Automatischer Versand nach Import einer Zielgruppe =====
Nach Ausführen eines automatischen Zielgruppen-Imports können weitere Aktionen durch Aufruf eines API-Calls
ausgeführt werden. Eine häufige Anwendung ist dabei das automatische Anlegen einer E-Mail mit anschließendem
Versand.
Voraussetzung ist die Konfiguration eines automatischen Import-Prozesses durch den promio.net Support.
Hierzu werden die zwei Dateien //user.csv// und //action.json// in einem ZIP-File bereitgestellt. \\
Das ZIP-File muss mit dem vereinbarten Namensschema im SFTP-Ordner /upload/auto für die automatische Verarbeitung bereitgestellt werden.
==== user.csv ====
Enthält die für den automatischen Import konfigurierten Daten.
adresse1@mail.de
adresse2@mail.de
==== action.json ====
Enthält Kampagnen- und Zielgruppeninformationen im JSON-Format. \\
Diese werden nach dem automatischen Import für die Ausführung von REST API Calls genutzt.
=== Maximalausprägung mit allen notwendigen und optionalen Angaben ===
{
"clientId": 10105,
"campaign": {
"name": "Meine Kampagne",
"code": "ABC-123-DEF",
"clientId": 12125,
"newsletterId": 82384
},
"message": {
"templateId": 2861485,
"format": "html",
"name": "Mein Creative",
"sendFromId": 12944,
"sendFromName": "promio.net Newsletter",
"locale": "de_DE",
"creative": {
"content": "\n \n My first message\n \n \n Hello World!
\n \n\n",
"subject": "Meine Betreffzeile"
},
"text": {
"content": "Hello World.\n"
}
},
"targetGroup": {
"filter": {
"includes": [
315089
],
"excludes": [
{
"type": "list",
"id": 100898
}
]
},
"limit": {
"amount": 50000,
"type": "mostActive"
}
},
"delivery": {
"schedule": {
"scheduledForDeliveryAt": "2025-03-01 12:00"
},
"start": {
"mailsPerHourLimit": 5000,
"resetStatistics": true,
"refreshAutoTargetGroup": true
},
"sendTest": {
"recipients": [
{
"custId": "abc-1234",
"mail": "max.mustermann@musterdomain.de",
"lastName": "Mustermann",
"firstName": "Manfred",
"gender": 1,
"street": "Musterstraße 4",
"city": "Musterstadt",
"countryCode": "DE",
"postcode": "12345",
"birthday": "1986-02-12",
"phoneNumber": 4912345678
}
]
}
}
}
=== Pflichtangaben und Hinweise ===
* //clientId//:
* wird benötigt. ID des Mandanten eintragen.
* //campaign//:
* Pflichtfeld, Pflichtfeld innerhalb: //name//
* Doku: [[https://api.promio-connect.com/docs/3.1/#tag/campaign-write/operation/createCampaign|REST API - create campaign]]
* //message//:
* Pflichtfeld
* wenn //templateId// vorhanden ist
* Creative wird aus einem Template gebaut
* Pflichtfeld: //name//
* wenn //templateId// fehlt
* Pflichtfeld: //name//
* Doku: [[https://api.promio-connect.com/docs/3.1/#tag/Create-or-update-messages/operation/createMessage|REST API - create message]]
* //creative//:
* Verpflichtend bei Creatives, die nicht durch ein Template erzeugt werden
* Pflichtfelder: //content//, //subject//
* //text//:
* optional. Nur notwendig bei abweichendem Text-Part. Ohne Angabe von //text// wird der Text-Part automatisch aus dem HTML der Multipart E-Mail erzeugt.
* //targetGroup//
* optional. Nur notwendig, um //filter// und //limit// einstellen zu können.
* Die ZielgruppenId wird automatisch zugewiesen.
* Doku: [[https://api.promio-connect.com/docs/3.1/#tag/Target-message-audience/operation/assignTargetGroupToMessage|REST API - assign target group]]
* //delivery//
* optional. Nur notwendig, wenn der Versand terminiert und gestartet werden soll.
* Einstellmöglichkeiten zum Versand
* //schedule//
* Terminierung des Versands
* Pflichtfeld: //scheduledForDeliveryAt//
* Doku: [[https://api.promio-connect.com/docs/3.1/#tag/Manage-campaign-delivery/operation/scheduleCampaign|REST API - schedule delivery]]
* //start//
* nur, wenn //start// gesetzt ist, wird der Versand auch gestartet.
* keine Pflichtfelder
* Doku: [[https://api.promio-connect.com/docs/3.1/#tag/Manage-campaign-delivery/operation/sendCampaign|REST API - start delivery]]
* //sendTest//
* optional. Start eines Testversands.
* Doku: [[https://api.promio-connect.com/docs/3.1/#tag/Testing-messages/operation/sendTestMail|REST API - send test mail]]
**Wichtig:** \\
Der Quelltext in //creative// und //text// muss für json "vorbereitet sein".
Auf folgender (externer) Webseite stehen Angaben, wie maskiert werden muss, sowie eine Möglichkeit, Quelltext automatisch maskieren zu lassen: https://www.freeformatter.com/json-escape.html
=== Beispiele ===
Beispiel für die Erstellung eines Creatives via HTML-Quellcode (incl. Versandstart):
{
"clientId": 10105,
"campaign": {
"name": "Meine Kampagne"
},
"message": {
"format": "html",
"name": "Mein Creative",
"sendFromId": 12944,
"sendFromName": "promio.net Newsletter",
"creative": {
"content": "\n \n My first message\n \n \n Hello World!
\n \n\n",
"subject": "Meine Betreffzeile"
}
},
"delivery": {
"schedule": {
"scheduledForDeliveryAt": "2025-03-01 12:00"
},
"start": {
}
}
}
Beispiel für die Erstellung eines Creatives via Template (ohne Versandstart):
{
"clientId": 10105,
"campaign": {
"name": "Meine Kampagne"
},
"message": {
"name": "Mein Creative",
"templateId": 2861485
}
}
{{tag>Importe Batch automatische_Prozesse Satzbeschreibungen Spezifikationen Nomenklatur }}