Subida de datos y envíos a través de FTP **************************************** Por medio de una cuenta **FTP** proporcionada por Planisys con user y clave, puerto 12125 y SSL habilitado, se puede subir un archivo ``CSV`` (Comma Separated Values). .. note:: Solamente hay una cuenta FTP por cada DMDS El CSV puede ser generado con * un editor de textos * una salida automática de algún programa o base de datos * salvando una planilla Excel en formato CSV Los campos están separados entre sí por un único separador fijo que es el **punto y coma**. En caso de haber un campo con punto y coma dentro del valor, se lo puede *enmascarar* con una barra invertida: **\\;**. La primer línea del CSV es el llamado **encabezado** e indica qué hacer con las líneas subsiguientes. Todas las líneas del CSV deben tener la misma cantidad de campos separados por punto y coma. El procesamiento del CSV es flexible y descarta las líneas con diferente cantidad de campos que los que dicta el **encabezado**, además de descartar líneas por mails con sintaxis incorrecta o dominios inexistentes. Puede hacer dos tipos de CSV * un CSV **pasivo** que solamente sirve para actualizar datos * un CSV **activo** que sirve para actualizar datos, pero que a su vez envía un mail por cada línea CSVs pasivos ++++++++++++ El *CSV pasivo* es un CSV cuyo encabezado indica que sólo se va a utilizar para actualizar datos. Los campos del encabezado pueden ser los fijos (se escriben así tal cual):o **Default Fields** * ``EMAIL`` (**indispensable**, no se puede procesar el CSV sin que aparezca este campo) * ``NOMBRE`` * ``APELLIDO`` * ``SEXO`` (solo se acepta M o F) * ``INVALIDO`` (solo se acepta 0 ó 1) * ``ORIGEN`` * ``FECHANAC`` (solo se acepta YYYY-MM-DD) * ``TITULO`` * ``DOCUMENTO`` * ``CELULAR`` * ``MAILALTERNATIVO`` * ``TWITTER`` * ``FACEBOOK`` * ``INSTAGRAM`` y además se pueden agregar campos definidos en el DMD o **Custom Fields** , como p.ej. * ``XYZTELCELXYZ`` * ``XYZDNIXYZ`` * ``XYZEMPLEADORXYZ`` etc .. warning:: Los campos XYZ deben ser definidos antes en el DMDS para evitar errores de tipeo y proliferación de campos erróneos. En caso de haber campos con sintaxis errónea, que no corresponda a lo listado más arriba, la operación se aborta con el mensaje: **>>>>>>>>>>>>>>>>>>>>>>>Header error - invalid field name ... aborting"** El campo ``INVALIDO`` sirve para invalidar un e-mail si es 0, o para revalidarlo si es 1. El ``ORIGEN`` es el nombre de una lista a la cual queda asociado un e-mail. .. note:: Un e-mail puede estar asociado a varias ``listas`` , también llamadas ``orígenes`` indistintamente El archivo con terminación ``.csv`` debe ser depositado en el directorio ``/private`` que se visualiza al ingresar via FTP. Periódicamente , el sistema toma estos archivos y los mueve a ``private/processed`` El fin del procesamiento se da cuando el archivo, por ejemplo llamado *archivo1.csv* , se convierte en *archivos1.csv-YYYY-MM-DD-HH-MM-SS* y se genera un archivo similar *archivos1.log-YYYY-MM-DD-HH-MM-SS* que permite saber qué sucedió con cada línea. Mensajes de LOG línea por línea del CSV Pasivo ++++++++++++++++++++++++++++++++++++++++++++++ Por cada línea , el procesador de CSVs va a imprimir un status. A continuación , ejemplos de las posibles **líneas de status** * *linenr=416 status={"status":"existing ok"} email=jkgomez01@hotmail.com* , significa que el email ya estaba en la base como válido * *linenr=927 status={"status":"existing invalidated"} email=jkgomez19999@hotmail.com* , significa que el email ya estaba en la base como inválido * *.................... Linea 224 CORREGIDO por * , el procesador de ``similitud lexicográfica`` detectó un error de tipeo y corrigió automáticamente la dirección de mail * *.................... Linea 171 ERROR email incorrecto invalido [The domain name fdhsjafhjdddddd.com.ar does not exist.]* dominio inexistente * *.................... Linea {} ERROR Faltan o sobran valores 7 != 8\n^* , cantidad errónea de campos , diferente de lo que marca el encabezado Al final del archivo de log, hay una línea con los totales, p.ej. *>>> 13287 lines processed, 20 lines with error, 172 emails corrected, 3 new emails, 141 existing invalidated emails* CSVs activos ++++++++++++ En caso de aparecer el campo ``__CAMP_NUMID__`` en el encabezado, se considera que se trata de un **CSV ACTIVO** y que aparte de actualizar datos línea por línea , se va a enviar un e-mail línea por línea. Debe ser un número de campaña API que se obtiene en la página web del DMDS. .. warning:: Es obligatorio, cuando se trata de un CSV activo, que además figure el campo ``__HTML_URI__`` en el encabezado. Sirve para especificar la URL de la pieza de email a enviar en cada línea. Opcionalmente, se puede incluir el campo ``__SENDER_NAME__`` en el encabezado, que se va a adosar al remitente real que marca la campaña API. El asunto es el que predetermina la campaña API también , junto con el remitente. Aunque se puede sobreescribir utilizando el campo ``__ASUNTO__`` asi como ``ASUNTO_URI`` que permite especificar una URL de donde traerse el asunto. Mensajes de LOG línea por línea del CSV Activo ++++++++++++++++++++++++++++++++++++++++++++++ Adicionalmente a los mensajes de CSV pasivo, aquí pueden aparecer mensajes nuevos. * *SEND linenr=5 status={"status":"ok","sent":1,"eeid":"9f977887-967e-4042-bc2b-c54444332218"} email=jkgomez01@gmail.com data={"campana_id": 72, "email": "true", "contacto": {"email": "jkgomez01@gmail.com"}, "html_url": "https://www.planisys.net/newsletter/1623/EnvioFactura.html", "remitente_nombre": "REMITENTE1"}* Este es un mensaje de debug indicando el **eeid** llamado indistintamente ``envio efectivo ID`` o ``batch id`` que luego se puede consultar tanto via API como via Web para ver qué eventos tiene (aparte de envío, pueden haber **lectura**, **click** y **rebote**). .. note:: En la misma cuenta FTP que provee Planisys a sus clientes DMDS, se puede almacenar en el directorio ``/web`` tanto HTMLs como imágenes, adjuntos y otros archivos accesorios para ser enviados por mail. Solamente se puede hostear contenido estático. Ejemplo CSV activo ++++++++++++++++++ Aqui mostramos un ejemplo de CSV activo, en donde se enviará un e-mail a soporte@planisys.com y otro a soporte@avascloud.net. Se han incluido emojis y caracteres UTF-8 en el asunto. El número de **campana API** se extrae de la creación de la misma. .. code-block:: EMAIL;__CAMP_NUMID__;__HTML_URI__;__SENDER_NAME__;XYZNOMBREXYZ;XYZAPELLIDOXYZ;__ASUNTO__ soporte@planisys.com;71206;https://imagenes.planisys.com/Planisys-Template.html;Novedades Planisys;Soporte;Técnico;😊🥳 Novedades Planisys áiéóúÑ soporte@avascloud.net;71206;https://imagenes.planisys.com/Planisys-Template.html;Novedades Planisys;Soporte;Técnico;😊🥳 Novedades Avascloud áiéóúÑ La pieza que se ve accediendo via Web contiene variables a reemplazar del tipo **XYZ** , utilizando los campos provistos tanto en el CSV como en el mismo sistema donde estan almacenados campos relativos a las direcciones de mail de destino. .. image:: planisys-template-desktop.jpg .. |date| date:: Last Updated on |date|