Documentación técnica Esta herramienta es ideal para el área de tecnología, ya que permite enviar emails transaccionales o comerciales de manera masiva. Funciona por medio de un servicio web que cuenta con la responsabilidad de comunicar de modo seguro a prospectos, clientes o proveedores información de interés. Los canales de comunicación son seguros entre todos los componentes que constituyen el sistema TEA Lite. A continuación se detalla la documentación técnica para el hacer uso de los métodos expuestos para comunicarse con los servicios de TEA Lite. Envío de correos Método para el envío de correo electrónico sin adjunto (attachment). Endpoint Método Endpoint Resource POST https://localhost /send . Autenticación y Headers Headers Value Authorization Basic {Token} Content-type application/json . Parámetros Atributos Uso Descripción bodyContentHTML Requerido Contenido del body en formato HTML, codificación JSON. TEA Lite espera que este HTML ya se encuentre totalmente personalizado. bodyContentPlainText Requerido Contenido de body en texto plano para multipart Email, codificación JSON. campaignId Requerido Identificador de campaña a la que pertenece el correo electrónico. outboundId Requerido Identificador único del mensaje. recipient Requerido Dirección de correo electrónico a la que cual se realizará la entrega del mensaje. replyTo Requerido Dirección de correo electrónico al cual se hace entrega los 'reply' de los usuarios finales. replyToName Requerido Nombre de dueño de la cuenta de replyTo sender Requerido Dirección de correo electrónico mediante la cual se hace el envío del mensaje senderName Requerido Nombre del destinatario del del correo electrónico (dueño de la cuenta “sender”). sourceSystem Requerido Identificador para relacionar los mensajes enviados subjectContentPlainText Requerido Asunto con el cual se hace entrega del correo electrónico, debe de estar en formato de texto plano, encoding JSON listUnsubscribe Opcional Header de list unsubscribe en el formato mailto:, https: recipientName Opcional Nombre del destinatario del correo electrónico sendAt Opcional Fecha en que se debe de enviar el mensaje, formato: YYYYMMDDHHMMSS type Opcional Indica el tipo de flujo que debe de seguir el ESP cuando procese el mensaje Notas La petición se realiza 1 a 1. Para rastrear los links (click) se necesita agregar la clase (class="_track") en las etiquetas de tipo dentro del código HTML. La forma en que se hace la inserción del código para el Web View Link es mediante la identificación de la clase (class="_webview") en las etiquetas de tipo dentro del código HTML. view"). Ejemplo de la petición: https://localhost/send Body { "type": "email", "outboundId": "1", "campaignId": "1", "sourceSystem": "IDSystemaEnvio", "sender": "envios@tralixenvios.com", "senderName": "Envios", "replyTo": "envios@tralixenvios.com", "replyToName": "Envios", "recipient": "email@tralix.com", "recipientName": "Email", "subjectContentPlainText": "Envio", "bodyContentHTML":"HMTL", "bodyContentPlainText": "Texto alternativo" } Response 200: Correo enviado.202 -  OK  { "messageId":"1" } Response 400: Error temporal400 -  { "errorCategory":"Retriable"             "errorText":"Servicio temporalmente inaccesible"} Response 500: Error fatal500 -  { "errorCategory":"Permanent"             "errorText":"El recipient es requerido"} Consulta de Rechazos Método para obtener los rechazos (Soft Bounces y Hard Bounces). Endpoint Método Endpoint Resource GET https://localhost /bounces Autenticación y Headers Headers Value Authorization Basic {Token} Content-type application/json Parámetros Atributos Uso Descripción sourceSystem Requerido Identificador para relacionar los mensajes enviados. *************** startTimeUTC Requerido Marca de tiempo para iniciar la consulta con los rebotes recopilados en el lado del Proveedor de servicios de correo electrónico (ESP). Formato: YYYYMMDDHHMMSS Tiempo Universal Coordinado (UTC) endTimeUTC Requerido Marca de tiempo para finalizar la consulta con los rebotes recopilados en el lado del Proveedor de servicios de correo electrónico (ESP). Formato: YYYYMMDDHHMMSS Tiempo Universal Coordinado (UTC) ó startTime Requerido Marca de tiempo para iniciar con la consulta de rebotes recopilados en el lado del ESP. (Formato: YYYYMMDDHHMMSS). endTime Requerido Marca de tiempo para finalizar con la consulta recopilada de rebotes en el lado del ESP (Formato: YYYYMMDDHHMMSS). tz *************** Requerido Zona horaria para los parámetros "startTime" y "endTime". page Opcional Indica la página de resultados en caso de tener varias páginas. Los valores posibles son 0 a "n...". Notas El objetivo de este método es responder con cada una de las respuestas y código de entrega de cada correo cuando contiene "Soft Bounces", "Hard Bounces". Ejemplo de la petición: https://[localhost]/bounces?startTimeUTC=20240401000000&endTimeUTC=20240410235959&sourceSystem=1 Response 200: OK { "messageId": "1", "recipient": "noexite@tralix.com", "errorCode": "550", "errorText": "550-5.1.1 The email account that you tried to reach does not exist. Please try\n550- 5.1.1 double-checking the recipient's email address for typos or\n550-5.1.1 unnecessary spaces. For more information, go to\n550 5.1.1 https://support.google.com/mail/?p=NoSuchUser qk15-20020a05687055cf00b0022e76902ffesi3915647oac.304 - gsmtp", "type": "Hard", "timestamp": "20240410184814" }, Response 400: Error temporal 403 - Forbidden ({"errorText":"CredentialsRejected","errorCategory":"Permanent"}) 400 -  { "errorCategory":"Retriable"             "errorText":"Servicio temporalmente inaccesible"} Response 500: Error fatal500 -  Internal Server Error500 -  { "errorCategory":"Permanent"             "errorText":"El recipient es requerido"} Consulta de Envíos Método para obtiene el resultado de los envíos (Soft Bounces, Hard Bounces y Entregas exitosas). Endpoint Método Endpoint Resource GET https://localhost /responses Autenticación y Headers Headers Value Authorization Basic {Token} Content-type application/json Parámetros Atributos Uso Descripción sourceSystem Requerido Identificador para relacionar los mensajes enviados. campaignId Requerido Identificador de campaña a la que pertenece el correo electrónico. ******************* startTimeUTC Requerido Marca de tiempo para iniciar la consulta. Datos recopilados en el lado del ESP. Formato: YYYYMMDDHHMMSS Tiempo Universal Coordinado (UTC) endTimeUTC Requerido Marca de tiempo para finalizar la consulta. Datos recopilados en el lado del ESP. Formato: YYYYMMDDHHMMSS Tiempo Universal Coordinado (UTC) ó startTime Requerido Marca de tiempo para iniciar con la consulta. Datos recopilados en el lado del ESP. (Formato: YYYYMMDDHHMMSS). endTime Requerido Marca de tiempo para finalizar con la consulta. Datos recopilados en el lado del ESP (Formato: YYYYMMDDHHMMSS). tz ******************* Requerido Zona horaria para los parámetros "startTime" y "endTime". Parámetros opcionales page Opcional Indica la página de resultados en caso de tener varias páginas. Los valores posibles son 0 a "n...". Notas El objetivo de este método es responder con cada una de las respuestas y código de entrega de cada correo cuando contiene Soft Bounces, Hard Bounces y Entregas exitosas. Ejemplo de la petición: https://[localhost]/responses?startTimeUTC=20240401000000&endTimeUTC=20240410235959&sourceSystem=1&campaignId=1 Response 200: OK { "messageId": "1", "recipient": "noexite@tralix.com", "errorCode": "550", "errorText": "550-5.1.1 The email account that you tried to reach does not exist. Please try\n550- 5.1.1 double-checking the recipient's email address for typos or\n550-5.1.1 unnecessary spaces. For more information, go to\n550 5.1.1 https://support.google.com/mail/?p=NoSuchUser qk15-20020a05687055cf00b0022e76902ffesi3915647oac.304 - gsmtp", "type": "Hard", "timestamp": "20240410184814" }, Response 400: Error temporal403 - Forbidden ({"errorText":"CredentialsRejected","errorCategory":"Permanent"})400 -  { "errorCategory":"Retriable"             "errorText":"Servicio temporalmente inaccesible"} Response 500: Error fatal500 -  Internal Server Error500 -  { "errorCategory":"Permanent"             "errorText":"El recipient es requerido"} Consulta de Interacciones Método para recuperar los tipos de interacciones disponibles son: Opens y Clicks. Endpoint Método Endpoint Resource GET https://localhost /interactions Autenticación y Headers Headers Value Authorization Basic {Token} Content-type application/json Parámetros Atributos Uso Descripción idCampaign Requerido Identificador de Campaña type Requerido Tipo de interacción (CLICK,OPEN) *************** startTimeUTC Requerido Fecha de inicio para la consulta. Datos recopilados en UTC en el lado ESP. (Formato: YYYYMMDDHHMMSS). Tiempo Universal Coordinado (UTC) endTimeUTC Requerido Fecha final para la consulta. Datos recopilados en UTC en el lado ESP. (Formato: YYYYMMDDHHMMSS). Tiempo Universal Coordinado (UTC) ó startTime Requerido Marca de tiempo para comenzar con la consulta. Datos recopilados en el lado del ESP. (Formato: YYYYMMDDHHMMSS). endTime Requerido Marca de tiempo para finalizar con la consulta. Datos recopilados en el lado del ESP (Formato: YYYYMMDDHHMMSS). tz *************** Requerido Zona horaria para los parámetros "startTime" y "endTime". idMessage Opcional Identificador de mensaje page Opcional Indica la página de resultados en caso de tener varias páginas. Los valores posibles son 0 a "n...". Ejemplo de la petición: https://localhost/interactions?idCampaign=1&idMessage=1&type=CLICK https://localhost/interactions?idCampaign=1&idMessage=1&type=OPEN Response 200: OK Respuesta OK de una consultar: Open { "email": "test2@tralix.com", "timestamp": "20180713181049", "ip": "127.0.0.1", "idCampaign": "123456789", "idMessage": "000010011001", "link": null, "linkName": null, "type": "OPEN" } Respuesta OK de una consultar: Click { "email": "envios@tralix.com", "timestamp": "20240410183754", "ip": "localhost", "idCampaign": "1", "idMessage": "1", "link": "link", "linkName": null, "type": "CLICK", "sourceSystem": "1" }, { "email": "envios@tralix.com", "timestamp": "20240410183950", "ip": "localhost", "idCampaign": "1", "idMessage": "1", "link": "link", "linkName": null, "type": "CLICK", "sourceSystem": "1" } Consulta de Desuscripciones Método para recuperar las des-suscripciones por medio del sourceSystem Endpoint Método Endpoint Resource GET https://localhost /unsubscribe Autenticación y Headers Headers Value Authorization Basic {Token} Content-type application/json Parámetros Atributos Uso Descripción sourceSystem Requerido Identificador para relacionar los mensajes enviados idCampaign Opcional Identificador de Campaña page Opcional Indica la página de resultados en caso de tener varias páginas. Los valores posibles son 1 a "n...". *************** startTimeUTC Opcional Fecha de inicio para la consulta de desuscripciones. (Formato: YYYYMMDDHHMMSS). endTimeUTC Opcional Fecha final para la consulta de desuscripciones. (Formato: YYYYMMDDHHMMSS). Ejemplo de la petición: http://localhost:9001/unsubscribe?sourceSystem=MySourceSystem Response 200: OK { "page": 1, "lastPage": true, "unsubscribes": [ { "recipient": "john.doe@tralix.com", "idCampaign": "5566", "idMessage": "777", "dateRequest": "2024-05-16" } ] } Enviar correos con Adjuntos Método para el envío de correo electrónico con adjuntos (attachment). Endpoint Método Endpoint Resource POST https://localhost /sendWithAttachment Autenticación y Headers Headers Value Authorization Basic {Token} Content-type application/json Content-type multipart/form-data Parámetros Atributos Uso Descripción bodyContentHTML Requerido Contenido del body en formato HTML, codificación JSON. TEA espera que este HTML ya se encuentre totalmente personalizado bodyContentPlainText Requerido Contenido de body en texto plano para multipart Email, codificación JSON campaignId Requerido Identificador de campaña a la que pertenece el correo electrónico outboundId Requerido Identificador único del mensaje recipient Requerido Dirección de correo electrónico a la que cual se realizará la entrega del mensaje replyTo Requerido Dirección de correo electrónico al cual se hace entrega los reply de los usuarios finales replyToName Requerido Nombre de dueño de la cuenta de replyTo sender Requerido Dirección de correo electrónico mediante la cual se hace el envío del mensaje senderName Requerido Nombre del dueño de la cuenta “sender” sourceSystem Requerido Identificador para relacionar los mensajes enviados subjectContentPlainText Requerido Asunto con el cual se hace entrega del correo electrónico, debe de estar en formato de texto plano, encoding JSON) listUnsubscribe Opcional Header de list unsubscribe en el formato mailto:, https: recipientName Opcional Nombre del destinatario del correo electrónico sendAt Opcional Fecha en que se debe de enviar el mensaje, formato: YYYYMMDDHHMMSS type Opcional Indica el tipo de flujo que debe de seguir el ESP cuando procese el mensaje Notas La petición se realiza 1 a 1 Para trackear los link (click) se necesita agregar la clase (class="_track") en las etiquetas de tipo dentro del HTML. La forma en que se hace la inserción del código para el Web View Link es mediante la identificación de la clase (class="_webview") en las etiquetas de tipo dentro del código HTML. Attachment: Los datos para enviar el email son los mismos que se requieren en el endpoint "/send" pero estos se deben de agregar al request como un form-data y el name debe de ser “data”. Se requiere agregar al request como un form-data y el name debe ser “attachment”, con el contenido del adjunto. Ejemplo de la petición: https://localhost/send Body { "type": "email", "outboundId": "1", "campaignId": "1", "sourceSystem": "IDSystemaEnvio", "sender": "envios@tralixenvios.com", "senderName": "Envios", "replyTo": "envios@tralixenvios.com", "replyToName": "Envios", "recipient": "email@tralix.com", "recipientName": "Email", "subjectContentPlainText": "Envio", "bodyContentHTML":"HMTL", "bodyContentPlainText": "Texto alternativo" } Response 200: OK202 -  OK  { "messageId":"124" } Response 400: Error temporal400 -  { "errorCategory":"Retriable"             "errorText":"Servicio temporalmente inaccesible"} Errores 400 { "errorText": "Request size too big. Maximum request size is 2 MB.", "errorCategory": "Permanent" } Errores 400 { "errorText": "key not found: attachment", "errorCategory": "Permanent" } Response500: Error fatal500 -  { "errorCategory":"Permanent"             "errorText":"El recipient es requerido"}