====== Import: Which specifications has the batch process? ====== ===== Manual Import ===== Please upload csv-files with addresses or target group definitions (with customer IDs or eMail addresses) to /upload/manual. Click on //Adresses > Lists//, choose action //Import addresses// and follow the given instructions. You can find a manual in article //"[[en:how_to_upload_addresses]]"//. ===== Automatic Import ===== A set of standard fields is set up. Individual fields can be defined. When choosing a field description, please take into consideration that these can be used as variables in all e-mail components and that the name scheme should be standardized. Generally, two types of automatic imports exist: ==== Complete Import ==== The complete positive database is available and synchronized on a daily basis. The selection of target groups takes place in promio.connect or via import of target group definitions (customer ID, eMail, internal promio.connect ID, one-columned csv). ==== Target Group Import ==== Target groups are imported as sub parts of the total database. Here the following options are available: * Checks for new files run daily or every five minutes. * Afterwards the target group is ready for further use (standard). * The target group is added to an existing newsletter list automatically and, thus, is ready for auto target groups afterwards. This makes managing auto campaigns (lifecycle mailings) very easy. ==== General Options ==== * Sub clients yes/no: Should addresses for different sub clients imported in one file? This can be assigned with b2b_user_id. * Time of checks for new files (only for daily checks, at the hour 0-24). ==== Requirements list for automatic import ==== |**Client**|client number| |**Test file**|This file must correspond exactly to the files that will be uploaded later, regarding charset, formatting (csv, bz2, Z), data structure (number + order of columns, separator, field delimiter).| |**E-mail address/es**|For receiving of status mails (logfiles) of all import processes.| |**Address management feature**|custID OR mail; can be chosen differing from client configuration.| |**Time of import**|Process is checking whether a file has been uploaded: daily at x o'clock OR every 5 minutes.| |**Creating a new target group**|Per import OR adding to a auto target group.| |**If auto target group**|1) Adding OR replacing of the auto target group - possible methods: \\ - replace \\ - replaceNoResubscribes \\ - add \\ - addNoResubscribes \\ \\ 2) if auto target group is replaced: \\ Unsubscribing of all users that are not included in the current file?* \\ * Please note: this is not recommended and only possible if user data are synchronized completely and every night because users will be added to the blacklist.| ==== Import Structure ==== File structure / Nomenclature: * Format: .csv * Compression (optional): bzip2, gzip with the ending .bz2, .Z * Encoding (optional): DES openssh * File name: * [SENDERID]_[NAME]_[CHARSET]_[IMPORTTEMPLATEID]_YYYYMMDDHHMMSS.csv * SENDERID: ID of the client to which the file is imported * NAME: Target group description that is used as the name in the system after import. Please do not use special characters or underscores. * CHARSET: [utf8|latin] * IMPORTTEMPLATEID: Integer, a variable that is provided by promio.net and that defines all information for the defined filetype (columns and type assignment always have to be constant) * Validity: The following things are automatically validated: * Filename on correct syntax * Number of lines in the file vs. number of lines after import into a temporary table * E-Mail on correct syntax. Duplicates will be ignored. * Logfile: After the import a logfile is supplied in the system and, in addition, an e-mail with error and warning information is sent to an defined distribution list. * Files have to be uploaded into the directory /upload/auto/ of promio.connect SFTP server. ===== Standard field structure (internal) ===== This is the standard file structure which can be extended for individual purposes. |**Fieldname**|**Fieldtype**|**Standard**|**Comment**| |b2b_user_id|int(8)|0|internal client ID: [xxxx]| |id|int(9)| |internal customer ID. System field of promio.connect.| |mail|varchar(255)| |e-mail address| |nick|varchar(255)| |nickname| |vorname|varchar(255)| |first name| |name|varchar(255)| |surname| |gender|tinyint(1)|0|1=male, 2=female| |mailerror|tinyint(1)|0|Internal last bounce status. System field of promio.connect.| |unsubscribe|tinyint(1)|0|Internal unsubscribe status. System field of promio.connect.| |source|tinyint(1)|0|Internal import marker. System field of promio.connect.| |strasse|varchar(255)| |street| |plz |varchar(255)| |postal code| |ort|varchar(255)| |place| |custID|varbinary(255)| |external customer ID| |country|varchar(255)| |de, at, ch, ...| |reg_datetime|datetime|0000-00-00 00:00:00|Time of registration| |reg_ip|varchar(255)| |Registration IP| |tsCreated|timestamp|0000-00-00 00:00:00|Timestamp of creation of data set. System field of promio.connect.| |tsLastUpdate|timestamp|on update CURRENT_TIMESTAMP|Timestamp of last update of data set. System field of promio.connect.| |agr|tinyint(3)|0|Advertisement agreement (1=given)| |tel|varchar(255)| |phone number| |birthday|date|0000-00-00|birthday| |pm_image|varchar(255)| |Link to an image of person (address research). Can be filled manually.| |pm_reputation_score|tinyint(1)| |Internal reputation score. System field of promio.connect.| |special_1|varchar(255)| |Free variable for future use| |special_2|varchar(255)| |Free variable for future use| |special_3|varchar(255)| |Free variable for future use| |special_4|varchar(255)| |Free variable for future use| |special_5|varchar(255)| |Free variable for future use| |special_6|varchar(255)| |Free variable for future use| |special_7|varchar(255)| |Free variable for future use| |special_8|varchar(255)| |Free variable for future use| |special_9|varchar(255)| |Free variable for future use| |special_10|varchar(255)| |Free variable for future use| |html_version|tinyint(1)| |format of view of email| |test_flag|tinyint(1)|0|internal marker for test user| |test_letter_id|int(6)|0|internal marker for test user| ===== Specifications personal data for import ===== |**Fieldname**|**Fieldtype**|**Standard**|**Comment**| |b2b_user_id|int(8)|0|internal client ID: [xxxx]| |id|int(9)| |internal customer ID| |mail|varchar(255)| |e-mail address | |nick|varchar(255)| |nickname| |vorname|varchar(255)| |first name| |name|varchar(255)| |surname| |gender|tinyint(1)|0|1=male, 2=female| |strasse|varchar(255)| |street| |plz|varchar(255)| |postal code| |ort|varchar(255)| |city| |custID|varbinary(255)| |external customer ID| |country|varchar(255)| |de, at, ch, ...| |reg_datetime|datetime|0000-00-00 00:00:00|Registration date| |reg_ip|varchar(255)| |Registration IP| |agr|tinyint(3)|0|Advertisement agreement (1=given)| |tel|varchar(255)| |phone number | |birthday|date|0000-00-00|birthday| |special_1|varchar(255)| |Free variable for future use| |special_2|varchar(255)| |Free variable for future use| ===== Automatic delivery after importing a target group ===== After the automatic import of a target group, you can trigger additional tasks by invoking an API call. A common application is the automatic set-up of an e-mail with subsequent delivery. This requires configuring an automatic import process through promio.net support. To do so, you must provide the two files //user.csv// und //action.json// in a ZIP archive. \\ This ZIP file must be named according to the agreed upon naming scheme and provided in the SFTP folder /upload/auto for automatic processing. ==== user.csv ==== Contains the data configured for automatic import. adress1@mail.de adress2@mail.de ==== action.json ==== Contains campaign and target group information in JSON format. \\ These are used after the automatic import for the execution of REST API calls. === Maximum specification with all necessary and optional properties === { "clientId": 10105, "campaign": { "name": "My campaign", "code": "ABC-123-DEF", "clientId": 12125, "newsletterId": 82384 }, "message": { "templateId": 2861485, "format": "html", "name": "My message", "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": "My subject" }, "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": "Max", "gender": 1, "street": "Musterstraße 4", "city": "Musterstadt", "countryCode": "DE", "postcode": "12345", "birthday": "1986-02-12", "phoneNumber": 4912345678 } ] } } }
=== Required fields and instructions === * //clientId//: * necessary. Enter ID of the client. * //campaign//: * required. Required field within: //name// * Docs: [[https://api.promio-connect.com/docs/3.1/#tag/campaign-write/operation/createCampaign|REST API - create campaign]] * //message//: * required * if //templateId// exists * message is built from a template * required: //name// * if //templateId// not exists * required: //name// * Docs: [[https://api.promio-connect.com/docs/3.1/#tag/Create-or-update-messages/operation/createMessage|REST API - create message]] * //creative//: * required for messages that are not created by a template * required fields: //content//, //subject// * //text//: * optional. Only necessary for a different text part. If //text// is not specified, the text part is automatically generated from the HTML of the multipart e-mail. * //targetGroup// * optional. Only necessary for setting //filter// and //limit//. * Target group ID is assigned automatically. * Docs: [[https://api.promio-connect.com/docs/3.1/#tag/Target-message-audience/operation/assignTargetGroupToMessage|REST API - assign target group]] * //delivery// * optional. Only necessary if delivery is to be scheduled or started. * settings for delivery * //schedule// * for scheduling the campaign * required: //scheduledForDeliveryAt// * Docs: [[https://api.promio-connect.com/docs/3.1/#tag/Manage-campaign-delivery/operation/scheduleCampaign|REST API - schedule delivery]] * //start// * delivery is only started if //start// is set. * no required fields * Docs: [[https://api.promio-connect.com/docs/3.1/#tag/Manage-campaign-delivery/operation/sendCampaign|REST API - start delivery]] * //sendTest// * optional. Send a test mail. * Docs: [[https://api.promio-connect.com/docs/3.1/#tag/Testing-messages/operation/sendTestMail|REST API - send test mail]] **Important:** \\ The source code in //creative// and //text// must be "prepared" for json. The following (external) website provides information on how to escape, as well as an option to have source text escaped automatically: https://www.freeformatter.com/json-escape.html === Examples === Example of creating a message via HTML source code (incl. start delivery): { "clientId": 10105, "campaign": { "name": "My campaign" }, "message": { "format": "html", "name": "My message", "sendFromId": 12944, "sendFromName": "promio.net newsletter", "creative": { "content": "\n \n My first message\n \n \n

Hello World!

\n \n\n", "subject": "My subject" } }, "delivery": { "schedule": { "scheduledForDeliveryAt": "2025-03-01 12:00" }, "start": { } } }
Example of creating a message via template (without start delivery): { "clientId": 10105, "campaign": { "name": "My campaign" }, "message": { "name": "My message", "templateId": 2861485 } } {{tag>imports batch processes automatical specifications nomenclature record_descriptions }}