====== 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 }}