Email Marketing y Newsletter / Funcionalidades / Integracion / HTTP API

HTTP API

Disfruta las extraordinarias ventajas de utilizar nuestra API de integración. ¡Ahorra tiempo y esfuerzo!

Comienza hoy

Introducción

1.Introducción

¿Qué es?

El API HTTP es una herramienta que te permite integrar EnvialoSimple.com con tus aplicaciones mediante simples llamadas a URLs.

La interfaz (API) te ofrece innumerables funcionalidades agrupadas por módulos para facilitar su utilización e implementación.

A través de la nueva API HTTP de EnvialoSimple.com podrás enviar tu campañas de email marketing; crear, modificar y eliminar contactos, listas de contactos y campañas; consultar estadísticas y reportes integrando todas las funcionalidades de EnvialoSimple.com en tu propia aplicación.

Todas las URLs tienen la misma estructura:

https://app.envialosimple.com/<modulo>/<accion>?APIKey=<api key>&format=<format>

<modulo> Simboliza a un grupo de acciones. Puede tomar los valores:

  • campaign
  • member
  • report
  • maillist

<accion> - Acción particular a realizar. Esta acción depende del modulo. Toma valores como "list", "add", "edit", etc.

<api key> - Token de autenticación. Estos token se generan desde tu cuenta de EnvialoSimple.com en las "Configuraciones Avanzadas".

<format> - Formato de salida del pedido. Los formatos soportados son:

  • json
  • xml

Respuesta (Estructura)

Todas las respuestas empiezan con un nodo "root" seguido por "ajaxResponse" si es que el formato de salida es "json" o directamente los datos después del nodo "root" si el formato de salida es XML.

Si NO se producen errores durante la ejecución de la operación se retorna un nodo "success" junto a los datos correspondientes al método. De lo contrario encontraremos un nodo "errors" con códigos de error.

Ejemplo:

Éxito:

{
            "root": {
                "ajaxResponse": {
                    "success": true,
                    <respuesta particular del servicio>
                }
            }
        }

Error:

{
            "root":{
                "ajaxResponse":{
                    "errors":{
                        <tokens de error>:<detalle de error si corresponde>
                    }
                }
            }
        }

Ejemplo práctico de una respuesta con mensaje de error:

Llamada: https://app.envialosimple.com/member/list/format/json?count=1asdRespuesta:
{
        "root":{
            "ajaxResponse":{
                "errors":{
                "errorMsg_formValidations":{
                    "count":[
                    "notDigits"
                        ],
                    "absolutepage": [ ],
                    "filter": [ ],
                    "orderBy": [ ],
                    "desc": [ ],
                    "MailListsIDs": [ ]
                    }
                }
            }
        }
    }

Módulo campaign

1.Listar Campañas

Servicio:

/campaign/list

Lista todas las campañas filtradas por nombre

Parámetros:

Parámetrocount
RequeridoNO
TipoNúmero Entero >0
ExplicaciónNúmero de campañas a devolver como máximo
Ejemplocount=10
Parámetroabsolutepage
RequeridoNO
TipoNúmero Entero >0
ExplicaciónPágina de "count" registros a la que se quiere ir. Si count vale 10 y absolutepage vale 3, entonces empezaremos a ver desde la campaña 31
Ejemploabsolutepage=3
Parámetrostatus
RequeridoNO
TipoArreglo de Cadena de Caracteres
Valores Posibles:

Active(Pendiente de aprobación, pendiente, preparando o enviando)
Inactive(Borrador, pausada o detenida)

Completed(Enviada)
ExplicaciónTipos de estado por los que se desea filtrar la lista
Ejemplostatus[] = Inactive&status[] = Completed
Parámetrofilter
RequeridoNO
TipoCadena de Caracteres
ExplicaciónNombre o parte del nombre por el que se filtran las campañas
Ejemplofilter=Promo Verano
ParámetroorderBy
RequeridoNO
TipoCadena de Caracteres
ExplicaciónValores posibles:
name (Nombre de la campaña)
id (Id de la campaña)
EjemploorderBy=name
Parámetrodesc
RequeridoNO
TipoNúmero Entero
Valores posibles:
1 (si)
0 (no)
ExplicaciónDetermina si el orden del listado es ascendente o descendente
Ejemplodesc=1

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada es incorrecto, falta o es requerido. Tiene asociada una estructura del tipo "Parámetro inválido"=>"error"
errorMsg_noCampaigns
Por un error inesperado no se pudo realizar ninguna consulta

Estructura de Salida:

campaign.CampaignID
ID de la campaña
campaign.Name
Nombre de la campaña
campaign.Status
Estado de envío
  • [Draft(Borrador)
  • Halted|Paused(Pausada)
  • Stopped(Detenida)
  • Completed(Completada)
  • Pending(Pendiente)
  • Sending(Enviando)
  • Completed(Enviada)]
Solo las campañas en Paused o Stopped se pueden enviar
campaign.ScheduleType
Tipo de programación de envío [Not scheduled | Send Now | One time scheduled]
campaign.schedule.ScheduleSendDate
Fecha programada para el envío. Solo válido si el tipo es "One time scheduled"
campaign.schedule.ScheduleErrorStatus
Errores verificados durante el envío (ver recuadro abajo)

** Solo se documentan los campos mas relevantes.

ScheduleErrorStatus:

errorMsg_remoteContentNotFound
No se ha podido recuperar el contenido remoto de tu campaña
errorMsg_campaignNotFound
La campaña ha sido eliminada y no puede recuperarse
errorMsg_administratorSuspended
La cuenta se encontraba suspendida al momendo de intentar enviar la campaña
errorMsg_administratorExhaustedQuota
Tu cuenta no tenía créditos disponibles y la operación fué detenida
errorMsg_maillistsEmpty
La lista de destinatarios utilizada no posee contactos activos

** Solo se documentan los errores más relevantes.

2.Recuperar información de una Campaña

Servicio:

/campaign/load

Recupera la información de una campaña

Parámetros:

ParámetroCampaignID
RequeridoSI
TipoNúmero Entero >0
ExplicaciónIdentificador de la campaña a recuperar
EjemploCampaignID=10

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada es incorrecto, falta o es requerido. Tiene asociada una estructura del tipo "Parámetro inválido"=>"error".
errorMsg_campaignInvalidID
Por un error inesperado no se pudo realizar ninguna consulta
errorMsg_campaignNotFound
No se puede encontrar la campaña
errorMsg_campaignMaillistNotFound
No se pueden encontrar las listas asociadas
errorMsg_campaignContentNotFound
No se puede encontrar el contenido de la campaña
errorMsg_campaignScheduleNotFound
No se puede encontrar la programación de la campaña

Estructura de Salida

campaign.CampaignID
ID de la campaña
campaign.Name
ID de la campaña
campaign.Status
Estado de envío.(Solo las campañas en Paused o Stopped se pueden enviar)Valores Posibles
  • [Draft(Borrador)
  • Paused(Pausada)
  • Stopped(Detenida)
  • Pending(Pendiente)
  • Pendingfor Approval(Pendiente de aprobación)
  • Sending (Enviando)
  • Completed (Completada)
Solo las campañas en Paused o Stopped se pueden enviar
campaign.schedule.ScheduleType
Tipo de programación de envío. Valores Posibles:
  • Not scheduled(Sin Programar)
  • Send Now(Enviar Ahora)
  • One time scheduled(Envío Programado.)
campaign.schedule.ScheduleSendDate
Fecha programada para el envío. Solo válido si el tipo es "One time scheduled"
campaign.schedule.ScheduleErrorStatus
Errores verificados durante el envío (ver recuadro abajo)

3.Crear o Modificar la información de una campaña

Servicio:

/campaign/save

Crea o modifica información de una campaña. La llamada se debe hacer mediante POST

Parámetros:

ParámetroCampaignID
RequeridoNO
TipoNúmero Entero >0
ExplicaciónIdentificador de la campaña que se quiere modificar
EjemploCampaignID=2
ParámetroCampaignName
RequeridoSI
TipoCadena de caracteres
ExplicaciónIdentificador de la campaña que se quiere modificar
EjemploCampaignName=Campaña de navidad
ParámetroCampaignSubject
RequeridoNO
TipoCadena de caracteres
ExplicaciónAsunto con el que se enviará la campaña
EjemploCampaignSubject=Feliz Navidad
ParámetroMailListsIds
RequeridoNO
TipoArray de enteros >0
ExplicaciónIDs de listas a las que se enviará la campaña
EjemploMailListsIds[]=4
ParámetroFromID
RequeridoNO
TipoNúmero Entero >0
ExplicaciónID de email de administrador designado como origen de la campaña (FROM)
EjemploFromID=3
ParámetroReplyToID
RequeridoNO
TipoNúmero Entero >0
ExplicaciónID del email de administrador designado como email de respuesta (ReplyTO)
EjemploReplyToID=4
ParámetroTrackLinkClicks
RequeridoNO
Tipo0 o 1 (por defecto 0)
ExplicaciónSi el parámetros es = 1, se registraran todos los clicks que se hagan en los links una vez enviada la campaña
EjemploTrackLinkClicks=1
ParámetroTrackReads
RequeridoNO
Tipo0 o 1 (por defecto 0)
ExplicaciónSi el parámetros es = 1, se registrará cada vez que un contacto abra el email de campaña
EjemploTrackReads=1
ParámetroTrackAnalitics
RequeridoNO
Tipo0 o 1 (por defecto 0)
ExplicaciónSi el parámetros es = 1, se agregaran a cada link los parámetros requeridos por "google analitics" para hacer un seguimiento de la campaña
EjemploTrackAnalitics=0
ParámetroSendStateReport
RequeridoNO
Tipo0 o 1 (por defecto 0)
ExplicaciónSi el parámetros es = 1, al terminar de enviar la campaña, se enviará un email al dueño de la cuenta informando la situación
EjemploSendStateReport=0
ParámetroScheduleCampaign
RequeridoNO
Tipo0 o 1 (por defecto 0)
ExplicaciónSi el parámetros es = 1, si se debe registrar la "Programación de envío" de la campaña
EjemploScheduleCampaign=1
ParámetroSendDate
RequeridoNO
TipoFecha con el formato yyyy-MM-dd HH:mm:ss
ExplicaciónFecha de envío de la campaña. Este parámetro depende de "ScheduleCampaign"
EjemploSendDate=2012-11-20 14:10:00
ParámetroAddToPublicArchive
RequeridoNO
Tipo0 o 1 (por defecto 0)
ExplicaciónAgregar la campaña al "archivo publico de campañas"
EjemploAddToPublicArchive=1

** Solo se documentan los campos mas relevantes.

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada es incorrecto, falta o es requerido
errorMsg_invalidCampaignDate
La fecha de envío es menor a la fecha actual
errorMsg_campaignIsCompletedNotSaved
La campaña que se quiere modificar ya fue enviada
errorMsg_campaignMaillistsNotSaved
No se pudieron guardar asignar las listas de contactos
errorMsg_phishing
La campaña es detectada como posible intento de estafa
errorMsg_campaignContentNotSaved
No se pudo guardar el asunto o parámetros relacionados con el contenido de la campaña
errorMsg_campaignScheduleNotSaved
No se pudo guardar la "Programación de envío"
errorMsg_campaignLoad
No se puede recuperar la campaña
errorMsg_campaignNotPost
Los parámetros fueron pasados por GET y deben ser pasados por POST
errorMsg_campaignNotFound
Una vez guardados los datos, se intenta verificar la correcta persistencia de los datos. Si no se puede encontrar la campaña se retorna este error
errorMsg_campaignMaillistNotFound
Una vez guardados los datos, se intenta verificar la correcta persistencia de los datos. Si no se pueden encontrar las listas asociadas se retorna este error
errorMsg_campaignContentNotFound
Una vez guardados los datos, se intenta verificar la correcta persistencia de los datos. Si no se puede encontrar el contenido de la campaña se retorna este error
errorMsg_campaignScheduleNotFound
Una vez guardados los datos, se intenta verificar la correcta persistencia de los datos. Si no se puede encontrar la programación de la campaña se retorna este error

Estructura de Salida:

** Devuelve todos los parámetros de entrada y agrega los siguientes datos:.

campaign.integrity.status
= 1 si la campaña tiene toda la información necesaria para ser enviada
= -1
campaign.integrity.schedule
= 1 si la información de programación de envío es correcta y completa
= -1
campaign.integrity.status
= 1 si la campaña tiene toda la información necesaria para ser enviada
= -1
campaign.integrity.subject
= 1 si tiene asunto
= -1
campaign.integrity.content
= 1 si el cuerpo de los emails no esta vacío
= -1
campaign.integrity.replyTo
= 1 si tiene un email de respuesta asignado
= -1
campaign.integrity.fromTo
= 1 si tiene un email de remitente asignado
= -1
campaign.integrity.maillist
= 1 si tiene una o varias listas asignadas
= -1

4.Vista previa de una campaña por e-mail o Navegador

Servicio:

/campaign/preview

Vista previa de una campaña por e-mail o Navegador. Este servicio soporta un tipo de formato de salida ("format") especial. El tipo "email"

Parámetros:

ParámetroCampaignID
RequeridoSI
TipoNúmero Entero
ExplicaciónIdentificador de la campaña a recuperar
EjemploCampaignID=10
ParámetroEmail
RequeridoSolo si el formato es "email"
TipoDirección de correo electrónico
ExplicaciónDestinatario de la pre-visualización de la campaña
EjemploEmail=j.f.fray@envialosimple.com

** Solo se documentan los campos mas relevantes.

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada es incorrecto, falta o es requerido. Tiene asociada una estructura del tipo "Parámetro inválido"=>"error".
errorMsg_campaignNotFound
No se puede encontrar la campaña
errorMsg_remoteContentEmpty
El contenido remoto asociado a la campaña esta vacío.
errorMsg_remoteContentNotFound
El contenido remoto asociado a la campaña no se pudo encontrar
errorMsg_campaignNotPersonalized
No se pueden reemplazar los tokens de los campos personalizados

Estructura de Salida:

email.fromName
Etiqueta nombre del email del remitente.
email.from
Email del remitente.
email.replyToName
Etiqueta nombre del emailResponder a:
email.replyTo
Email de Responder a:
campaign.CampaignName
Nombre de la campaña
campaign.CampaignName
Nombre de la campaña
campaign.subject
Asunto de la campaña
campaign.HTML
Código HTML de la campaña
campaign.plainText
Texto plano alternativo para los clientes que no soportan HTML.
campaign.CampaignID
Identificador de la campaña.

5.Borrar una campaña

Servicio:

/campaign/delete

Elimina definitivamente una campaña

Parámetros:

ParámetroCampaignIds
RequeridoSI
TipoArreglo de Números Enteros
ExplicaciónIds de campañas a eliminar
EjemploCampaignIds[]=10&CampaignIds[]=1

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada es incorrecto, falta o es requeridoTiene asociada una estructura del tipo "Parámetro inválido"=>"error"
errors.notDeleted
En caso de no poder eliminar una campaña en la respuesta tendremos un nodo "errors" los los IDs de las campañas no eliminadas y otro nodo "countNotDeleted" con la cantidad de campañas no eliminadas.
Ej: errors:{notDeleted:["10","2"]},countNotDeleted: "2

En caso de no poder eliminar una campaña en la respuesta tendremos un nodo "errors" los los IDs de las campañas no eliminadas y otro nodo "countNotDeleted" con la cantidad de campañas no eliminadas.

Ej: errors:{notDeleted:["10","2"]},countNotDeleted: "2"

Estructura de Salida

countDeleted
Número de campañas eliminadas

6.Crear cuerpo de la campaña (HTML/Texto plano)

Servicio:

/content/edit

Crea/Modifica el cuerpo del e-mail de la campaña

Ver detalles del servicio

7.Enviar una campaña

Servicio:

/campaign/resume

Una vez creada la campaña con su contenido se puede comenzar el proceso de envío de e-mails a los destinatarios. Este método también debe usarse para reanudar una campaña pausada

Parámetros:

ParámetroCampaignID
RequeridoSI
TipoNúmero Entero
ExplicaciónIdentificador de la campaña a enviar
EjemploCampaignID=10

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada es incorrecto, falta o es requeridoTiene asociada una estructura del tipo "Parámetro inválido"=>"error"
errorMsg_campaignNotActive
La campaña esta en estado "Draft" por lo que no esta lista para ser enviada
errorMsg_campaignNotResumed
La campaña no se pudo reanudar/enviar
errorMsg_campaignNotScheduled
No se pudo Cambiar el estado a la configuración de envío
errorMsg_campaignCompleted
La campaña ya fue enviada en su totalidad. No puede reenviarse
errorMsg_maxSimultaneousCampaignLimitExceeded
No pueden enviarse más de 10 campañas simultáneamente

Estructura de Salida

campaign.CampaignID
ID de la campaña

8.Pausar campaña

Servicio:

/campaign/pause

Detiene el envío de una campaña. Esta campaña luego puede ser retomada con una llamada al servicio "/campaign/resume"

Parámetros:

ParámetroCampaignID
RequeridoSI
TipoNúmero Entero
ExplicaciónIdentificador de la campaña a pausar
EjemploCampaignID=10

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada es incorrecto, falta o es requerido. Tiene asociada una estructura del tipo "Parámetro inválido"=>"error"
errorMsg_campaignNotActive
La campaña esta en estado "Draft" por lo que no puede ser pausada
errorMsg_campaignAlreadyPaused
La campaña ya esta pausada
errorMsg_campaignStoppedOrCompleted
La campaña esta detenida o completada
errorMsg_campaignCompleted
La campaña ya fue enviada en su totalidad. No puede pausarse
errorMsg_campaignNotPaused
La campaña no pudo pausarse

Estructura de Salida

campaign.CampaignID
ID de la campaña

9.Ejemplos útiles de implementación en PHP

En este ejemplo vamos a:

  • 1. Crear una campaña con las siguentes características:
    • 1. Nombre: 'Promo Verano'
    • 2. Asunto: 'Super Ofertas de verano!!!'
    • 3. ID de lista de contactos: 1
    • 4. ID de email de remitente: 21
    • 5. ID de email de respuesta: 21
    • 6. Seguir enlaces: si
    • 7. Contar aperturas: si
    • 8. Usar Google Analytics: si
    • 9. Enviar informe al finalizar: no
    • 10. Agregar al archivo público: si
  • 2. Modificación de estado de envío activada: si
  • 3. Programar para envío inmediato: si
  • 4. Crear el contenido del email y asignáraselo a la campaña.
  • 5. Enviar la campaña.

Script

textarea con el codigo del script member.php

Salida Script PHP

Nueva Campaña: XX

Cuerpo de la campaña creado

Campaña enviada. Para ver el avance y el resultado de la campaña ver el modulo de 'reportes'


<?php$baseURL = 'https://app.envialosimple.com';$apiKey = 'TU LLAVE';// Creo nueva campaña$params = array();$params['APIKey']=$apiKey;$params['CampaignName']='Promo Verano';$params['CampaignSubject']='Super Ofertas de verano!!!';$params['MailListsIds']=array('1','2');$params['FromID']='21';$params['ReplyToID']='21';$params['TrackLinkClicks']='1';$params['TrackReads']='1';$params['TrackAnalitics']='1';$params['SendStateReport']='';$params['AddToPublicArchive']='1';$params['ScheduleCampaign']='1';$params['SendNow']='1';$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $baseURL.'/campaign/save/format/json');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));$jsonResponse = curl_exec($ch);curl_close($ch);$response = json_decode($jsonResponse, true);$ok = isset($response['root']['ajaxResponse']['success']);if(!$ok){echo "Error al crear la campaña\n";print_r($response);exit;}$id = $response['root']['ajaxResponse']['campaign']['CampaignID'];$name = $response['root']['ajaxResponse']['campaign']['Name'];echo "Nueva Campaña: $id $name\n";if($response['root']['ajaxResponse']['campaign']['integrity']['status']=='1'){if($response['root']['ajaxResponse']['campaign']['integrity']['subject']=='-1'){echo "Debes asignar un Asunto.\n";}if($response['root']['ajaxResponse']['campaign']['integrity']['schedule']=='-1'){echo "Debes determinar una configuracion de envio\n";}if($response['root']['ajaxResponse']['campaign']['integrity']['content']=='-1'){echo "Debes determinar un contenido de la campaña\n";}if($response['root']['ajaxResponse']['campaign']['integrity']['replyTo']=='-1'){echo "Debes determinar un remitente 'reply to'\n";}if($response['root']['ajaxResponse']['campaign']['integrity']['fromTo']=='-1'){echo "Debes determinar un origen 'from'\n";}if($response['root']['ajaxResponse']['campaign']['integrity']['maillist']=='-1'){echo "Debes determinar una o varias listas de contactos\n";}}// Crea contenido$params = array();$params['APIKey']=$apiKey;$params['CampaignID']=$id;$params['HTML']='<h1>Super ofertas de verano!!!</h1><p>Mirá nuestros <a href="http://mitiendita.com.ar">productos</a></p> <br/> para desuscribirse click <a href="%UnSubscribe%">aquí</a>';$params['PlainText']="Super ofertas de verano!!!\n\n\tMira nustros productos en http://mitiendita.com.ar";// Asigno contenido a la campaña.$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $baseURL.'/content/edit/format/json');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));$jsonResponse = curl_exec($ch);curl_close($ch);$response = json_decode($jsonResponse, true);$ok = isset($response['root']['ajaxResponse']['success']);if(!$ok){echo "No se pudo asigar el contenido del email a la campaña\n";print_r($response);exit;}echo "Cuerpo de campaña creado\n";// Envio la campaña$params = array();$params['APIKey']=$apiKey;$params['CampaignID']=$id;$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $baseURL.'/campaign/resume/format/json');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));$jsonResponse = curl_exec($ch);curl_close($ch);$response = json_decode($jsonResponse, true);$ok = isset($response['root']['ajaxResponse']['success']);if(!$ok){echo "Error al enviar la campaña\n";print_r($response);exit;}if($ok){echo "Campaña enviada. Para ver el avance y el resultado de la campaña ver el modulo de 'reportes'\n";}?>

Módulo content

1.Crear cuerpo de la campaña (HTML/Texto plano)

Servicio:

/content/edit

Recupera, crea o edita el cuerpo del e-mail de una campaña. Si el llamado al servicio es por GET, recupera la información del registro indicado por el parámetro CampaignID. Si es por POST Crea o actualiza los datos del registro indicado por el parámetro CampaignID

Parámetros:

ParámetroCampaignID
RequeridoSI
TipoNúmero Entero >0
ExplicaciónIdentificador de la campaña a recuperar
EjemploCampaignID=10
ParámetroURL
RequeridoNO
TipoURL
ExplicaciónDirección desde donde se obtendrá el contenido de la campaña. La URL debe estar encodeada como parámetro. (PHP: rawurlencode). Si este parámetro está presente, el contenido de la campaña será remoto y se ignorarán los parámetros HTML y PlainText
EjemploURL=http://misitio.com/modelo.html
ParámetroHTML
RequeridoNO
TipoCadena de Caracteres
ExplicaciónCuerpo del email en HTML
EjemploPlainText=mi contenido
ParámetroPlainText
RequeridoNO
TipoCadena de Caracteres
ExplicaciónCuerpo del email en texto plano. Utilizado por los clientes que no soporten HTML
EjemploPlainText=mi contenido
ParámetroRemoteUnsubscribeBlock
RequeridoNO
TipoNúmero Entero
ExplicaciónSi el parámetro URL está presente (campaña con contenido remoto) y se quiere personalizar el enlace para desuscribirse, se debe completar este parámetro con la etiqueta %UnSubscribe% que se reemplazará por el enlace de desuscripción
EjemploRemoteUnsubscribeBlock=Para desuscribirse de nuestra lista haga Click Aquí

Nota:

En el contenido del email debe estar presente un link de desuscripción a la lista de contactos.

Puede ser proporcionado de dos maneras:

a) Si el contenido ha sido proporcionado a través del parámetro URL (contenido remoto) debe indicarse en el parámetro RemoteUnsubscribeBlock el link de desuscripción.

b) Si el contenido ha sido proporcionado a través del parámetro HTML, éste debe contener el link de desuscripción conjuntamente con el contenido del email. Link de desuscipción: ‹span›Para desuscribirse de nuestra lista haga‹/span› ‹a href="%UnSubscribe%" target="_blank"›Click Aquí‹/a›

El link de desuscripción es obligatorio, en caso de no estar presente, la API devolverá el error errorMsg_unSubscribeTagMissing

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada es incorrecto, falta o es requerido. Tiene asociada una estructura del tipo "Parámetro inválido"=>"error"
errorMsg_unSubscribeTagMissing
En el cuerpo del contenido del email no se ha encontrado el link de desuscripción.
errorMsg_contentNotSaved
No se puede guardar el contenido de la campaña
errorMsg_campaignNotFound
No se puede encontrar la campaña

Estructura de Salida

content.CampaignID
ID de la campaña
content.URL
URL del contenido remoto
content.PlainText
Texto del cuerpo del e-mail de la campaña para clientes de correo que no soportan HTML
content.HTML
Cuerpo del HTML del email de la campaña
content.IsEmpty
1 si el cuerpo de la campaña esta vacío. (Sin URL, HTML ni PlainText)

** Solo se documentan los campos mas relevantes.

2.Listar plantillas

Servicio:

/template/gallery

Recupera el listado de plantilla

Parámetros:

ParámetroretrieveList
RequeridoNO
TipoCadena de caracteres
ExplicaciónDiseños de emails de tus campañas
EjemploretrieveList=defaulTemplates
Parámetrooffset
RequeridoNO
TipoNúmero Entero
ExplicaciónCantidad de registros a partir de los cuales empezar a recuperar el listado.
Ejemplooffset=10
Parámetrolimit
RequeridoNO
TipoNúmero Entero
ExplicaciónCantidad de registros a recuperar el listado.
Ejemplolimit=10
ParámetrofilterListByCategory
RequeridoNO
TipoArreglo de enteros
ExplicaciónGrupo de filtros de búsqueda por categoría general
EjemplofilterListByCategory[]=2
ParámetrofilterListByCategory2
RequeridoNO
TipoArreglo de enteros
ExplicaciónGrupo de filtros de búsqueda por colores
EjemplofilterListByCategory2[]=8

Nota:Cada uno de los filtros por categoría produce una búsqueda de tipo (OR); la combinación de los dos filtros produce una búsqueda de tipo (OR) AND (OR).Ej. SELECT ... WHERE ( 'filterListByCategory'=5 OR 'filterListByCategory'=7 ) AND ('filterListByCategory2'=16)

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requerido

Estructura de Salida

myTemplatesList.template[0].templateId
ID del registro (plantilla)
myTemplatesList.template[0].templateTitle
Título de la plantilla ( si el listado corresponde a los contenidos de campañas, es el título de la campaña )
myTemplatesList.template[0].templateThumbnail
Información sobre la captura en miniatura del diseño de la plantilla. La ruta (path) es relativa al dominio https://app.envialosimple.com . Si el listado corresponde a las plantillas predeterminadas debe agregar en entre el dominio y el path indicado, el prefijo mailing_templates del directorio de plantillas. Ej. https://app.envialosimple.com/mailing_templates/119/content-t.jpg
myTemplatesList.template[0].templateThumbnailZoom
Ruta relativa a la captura grande,si existe, del diseño de la plantilla. (las indicaciones relativas a la ruta son idénticas a las de la miniatura)

** Solo se documentan los campos mas relevantes.

3.Listar categorías de plantillas

Servicio:

/campaign/templatecategories

Recupera el listado de categorías que se utilizan para agrupar las plantillas

list.category[]Listado de categorías generales.

list.color[]Listado de categorías por color.

Estructura de Salida:

list.category[]
Listado de categorías generales
list.color[]
Listado de categorías por color
list.category[0].CategoryID
ID de la categoría
list.category[0].NameToken
Nombre de la categoría
list.category[0].HasIcon
Los nodos de tipo list.color poseen aquí una cadena de caracteres para utilizar como selectores CSS para identificar el color

Módulo member

1.Listar contactos

Servicio:

/member/list

Lista todos los contactos de todas las listas filtradas por email

Parámetros:

ParámetroMailListsIds
RequeridoNO
TipoArray
ExplicaciónObtener solo miembros de las listas seleccionadas
EjemploMailListsIds[]=125
Parámetrocount
RequeridoNO
TipoNúmero Entero
ExplicaciónNúmero de contactos a devolver como máximo
Ejemplocount=10
Parámetroabsolutepage
RequeridoNO
TipoNúmero Entero
ExplicaciónPágina de "count" registros a la que se quiere ir.Si count vale 10 y absolutepage vale 3, entonces empezaremos a ver desde el contacto 31
Ejemploabsolutepage=3
Parámetrofilter
RequeridoNO
TipoCadena de caracteres
ExplicaciónEmail o parte de email por el que se filtran los contactos
Ejemplofilter=nombre@dominio.com
ParámetroorderBy
RequeridoNO
TipoNúmero entero Cadena de caracteres
Valores posibles:
name
id
ExplicaciónCampo por el cual estará ordenado el listado.
EjemploorderBy=name
Parámetrodesc
RequeridoNO
TipoNúmero entero
Valores posibles:
0
1
ExplicaciónCampo por el cual estará ordenado el listado.
Ejemplodesc=1

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada es incorrecto, falta o es requerido. Tiene asociada una estructura del tipo "Parámetro inválido"=>"error"
errorMsg_membersNotFound
No se han podido recuperar los contactos.

Estructura de Salida:

list.item.MemberID
ID del contacto
list.item.Email
Email del contacto
list.item.BounceType
Tipo de rebote [1=Rebote Duro|2=Rebote Blando|3=Sin Rebotes]
list.item.MailLists.activeCount
Número de listas en las que esta relacionado el miembro
list.item.MailLists.item.MailListID
Id de lista de contactos
list.item.MailLists.item.SubscriptionStatus
Estado de suscripción del miembro en la lista
list.item.MailLists.item.MailListName
Nombre de la lista
list.item.CustomFields.item.CustomField<1..100>
Campos personalizados del miembro
list.pager.absolutepage
Página que se esta mostrando
list.pager.pagecount
Número total de páginas
list.pager.totalCount
Número total de registros
list.pager.rowCount
Número de registros en la página
customfields
Listado de los campos personalizados creados por el administrador
customfields.rows.CustomFieldID
Ids de campos personalizados
customfields.rows.Title
Títulos de campos personalizados
criteria.filter
Filtro ingresado como parámetro

** solo los campos relevantes son explicados y enumerados

2.Crear o Modificar la información de un Contacto

Servicio:

/member/edit

Recupera, crea o modifica información de un contacto.

Este servicio se comporta de formas distintas dependiendo la forma en la que realizamos la llamada. Si lo hacemos mediante GET y pasamos el parámetro MemberID, intentara recuperar la información del contacto. Si utilizamos POST intentara modificar o crear el contacto dependiendo si esta o no definido el parámetro MemberID

Parámetros:

ParámetroMemberID
RequeridoNO
TipoNúmero Entero
ExplicaciónID del contacto que se quiere modificar. Solo necesario si se quiere recuperar la información o modificar el contacto.
EjemploMemberID=2
ParámetroMailListID
RequeridoNO
TipoNúmero Entero
ExplicaciónLista a la cual se inscribirá inicialmente el contacto. Solo una lista debe ser asignada.
EjemploMailListID=4
ParámetroEmail
RequeridoNO
TipoCadena de caracteres
ExplicaciónDirección de correo que se quiere suscribir
EjemploEmail=rogelio@donweb.com
ParámetroCustomField<1..100>
RequeridoNO
TipoArreglo de cadena
ExplicaciónValores para cada campo personalizado. La parte numérica del parámetro es el ID del campo personalizado "CustomFieldID"
EjemploCustomField1=rogelio&CustomField3=hombre&CustomField5=argentina

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrectos, faltan o son requeridos
errorMsg_memberNotFound
No se encuentra el miembro a modificar. Solo puede aparecer durante una modificación
errorMsg_memberNotSaved
El contacto no se pudo guardar por un error inesperado
errorMsg_memberBanned
El contacto no se pudo suscribir a la lista porque el email esta prohibido

Estructura de Salida:

member.MemberID
ID del contacto
member.Email
Email del contacto
member.CustomFields
member.CustomFields.item.CustomField<1..100>

Campos personalizados del miembro

** Solo los campos relevantes son explicados y enumerados.

3.Cambiar el estado un Contacto (Suscribir, Desuscribir, Des-asociar, etc)

Servicio:

/member/changestaus

Modifica el estado de uno o mas contactos en relación a una lista o mas listas

Parámetros:

ParámetroMemberIds
RequeridoSI
TipoArreglo de enteros
ExplicaciónTodos los IDs de contactos a los que se desea modificar el estado.
EjemploMemberIds[]=1&MemberIds[]=2
ParámetroMailListsIds
RequeridoSI
TipoArreglo de enteros
ExplicaciónTodas las listas de contactos co las que se desea operar.
EjemploMailListsIds[]=4&MailListsIds[]=9
ParámetroSubscriptionStatus
RequeridoSI
TipoCadena de caracteres
ExplicaciónIndica el estado que se quiere asignar a los contactos.
Valores posibles:PendingOptIn (pendiente de confirmación)
Subscribed (suscripto)
Unsubscribed (desuscripto)
Deleted (remover de la lista)
EjemploSubscriptionStatus=Subscribed

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requerido
invalidMaillist
Lista de IDs de lista de contactos invalidas. Inexistentes
invalidMember
Lista de IDs de contactos inválidos. Inexistentes
subscribed
Lista de IDs de contactos suscritos correctamente. Este parámetro solo esta presente si hubo un error y esta presente "notSubscribed"
notSubscribed
Lista de IDs de contactos validos NO suscritos
countNotSubscribed
Cantidad de contactos no suscritos (notSubscribed invalidMember)

Estructura de Salida:

countChanged=number
cantidad de members que se han modificado satisfactoriamente.
changestatus
changestatus.detail
changestatus.detail.changed
arreglo que contiene una key por cada MemberID cuyo valor es un arreglo de cada MaillistID para la cual se ha modificado el estado

Ejemplo:

changestatus: {
            detail: {
            changed: {
                2:["4","9"],
                1:["4","9"]
                     }
                    }
                SubscriptionStatus: "Subscribed"
                  }
            countChanged: 2

4.De-suscribir Contactos por email

Servicio:

/member/unsubscribebyemail

Remueve uno o mas contactos de una o varias listas de contactos filtrándolos por email

Parámetros:

Parámetroemails
RequeridoSI
TipoArreglo de cadenas
ExplicaciónTodos los email de contactos a des-suscribir
Ejemploemails[]=toto@tritolo.com&emails[]=juena@gmail.com
ParámetroMailListsIds
RequeridoSI
TipoArreglo de enteros
ExplicaciónTodas las listas de contactos a la que se quieren des-suscribir los MembersIds
EjemploMailListsIds[]=4&MailListsIds[]=9
Parámetroban
RequeridoNO
TipoEntero[0|1]
ExplicaciónCrea una regla de exclusión por cada email del parámetro emails
Ejemploban=1

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requerido

Estructura de Salida:

countUnsubscribed
Número de miembros suscritos correctamente
notUnsubscribed
Arreglo de emails de contactos validos NO des-suscritos.
countNotUnsubscribed
Cantidad de contactos no des-suscritos (notUnsubscribed invalidMember)

5.Ejemplos útiles de implementación en PHP:

En este ejemplo vamos a:

Crear un contacto con email=juanperez@gmail.com, nombre=Juan, apellido=Perez y suscripto a la lista con ID = 1.

Suscribimos el contacto a la lista con ID = 2.

Desuscribimos de la lista 1 al contacto creado en el paso 1

Buscamos el contacto creado en el paso 1 dentro de la lista 2

Script

textarea con el codigo del script member.php

Salida Script PHP

Nuevo Contacto: 19962 - juanperez@gmail.com: Juan Perez

Usuario suscripto correctamente a la lista 2

Usuario desuscripto correctamente de la lista 1

El usuario 19962 - juanperez@gmail.com (Juan Perez) esta suscripto a la lista 2


<?php$baseURL = 'https://app.envialosimple.com';$apiKey = ' TU LLAVE';// Creo un nuevo contacto en la lista 1$params = array();$params['APIKey']=$apiKey;$params['MailListID']=1;$params['Email']='juanperez@gmail.com';$params['CustomField1']='Juan';$params['CustomField2']='Perez';$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $baseURL.'/member/edit/format/json');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));$jsonResponse = curl_exec($ch);curl_close($ch);$response = json_decode($jsonResponse, true);$id = $response['root']['ajaxResponse']['member']['MemberID'];$email = $response['root']['ajaxResponse']['member']['Email'];$nombre = $response['root']['ajaxResponse']['member']['CustomFields']['item']['CustomField1']['Values']['Option'][0]['Value'];$apellido = $response['root']['ajaxResponse']['member']['CustomFields']['item']['CustomField2']['Values']['Option'][0]['Value'];echo "Nuevo Contacto: $id - $email: $nombre $apellido \n";//Suscricribo el contacto antes creado a la lista 2$params = array();$params['APIKey']=$apiKey;$params['MailListsIds']=array(2);$params['MemberIds']=array($id);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $baseURL.'/member/changestatus/SubscriptionStatus/Subscribed/format/json');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));$jsonResponse = curl_exec($ch);curl_close($ch);$response = json_decode($jsonResponse, true);$exito = $response['root']['ajaxResponse']['success'];$count = $response['root']['ajaxResponse']['countSubscribed'];if($exito && $count=1){echo "Contacto suscripto correctamente a la lista 2\n";}else{echo "No se pudo suscribir correctamente a la lista 2\n";print_r($response);exit;}// De-Suscricribo el contacto antes creado de la lista 1$params = array();$params['APIKey']=$apiKey;$params['MailListsIds']=array(1);$params['MemberIds']=array($id);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $baseURL.'/member/changestatus/SubscriptionStatus/Unsubscribed/format/json');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));$jsonResponse = curl_exec($ch);curl_close($ch);$response = json_decode($jsonResponse, true);$exito = $response['root']['ajaxResponse']['success'];$count = $response['root']['ajaxResponse']['countUnsubscribed'];if($exito && $count=1){echo "Contacto desuscripto correctamente de la lista 1\n";}else{echo "No se pudo desuscribir correctamente de la lista 1\n";print_r($response);exit;}//Busco el contacto antes creado en la lista 2$params = array();$params['APIKey']=$apiKey;$params['MailListID']=2;$params['filter']='juanperez';$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $baseURL.'/member/listbymaillist/format/json?'.http_build_query($params));curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$jsonResponse = curl_exec($ch);curl_close($ch);$response = json_decode($jsonResponse, true);foreach ($response['root']['ajaxResponse']['list']['item'] as $item){$tmpid = $item['MemberID'];$tmpemail = $item['Email'];$tmpnombre = $item['CustomFields']['item']['CustomField1']['Values']['Option'][0]['Value'];$tmpapellido = $item['CustomFields']['item']['CustomField2']['Values']['Option'][0]['Value'];echo "El Contacto $tmpid - $tmpemail ($tmpnombre $tmpapellido) esta suscripto a la lista 2\n";}?>

Módulo mailist

Este modulo agrupa servicios de administración de listas de contactos.

1.Listar listas de contactos

Servicio:

/maillist/list

Lista todas las listas de contactos

Parámetros:

Parámetrocount
RequeridoNO
TipoNúmero Entero
ExplicaciónNúmero de registros como máximo por página
Ejemplocount=10
Parámetroabsolutepage
RequeridoNO
TipoNúmero Entero
ExplicaciónPágina de "count" registros a la que se quiere ir. Si count vale 10 y absolutepage vale 3, entonces empezaremos a ver desde el registro 31
Ejemploabsolutepage=3
Parámetrofilter
RequeridoNO
TipoCadena de caracteres
ExplicaciónNombre o parte del nombre por el que se filtran los registros
Ejemplofilter=Promo Verano
ParámetroorderBy
RequeridoNO
TipoCadena de caracteres posibles:
  • name (nombre de la lista)
  • activememberscount (cantidad de miembros activos)
  • memberscount (cantidad de miembros totales)
ExplicaciónCampo por el cual estará ordenado el listado
EjemploorderBy=name
Parámetrodesc
RequeridoNO
Tipo[1|0]
ExplicaciónDetermina si el orden del listado es ascendente (0) o descendente (1)
Ejemplodesc=1

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requerido
errorMsg_noMaillist
No se pudieron recuperar las listas de contactos

Estructura de Salida:

list.item.MailListID
ID de lista de contacto
list.item.Name
Nombre de la lista de contactos
list.item.MemberCount
Total de contactos (suscriptos y desuscriptos)
list.item.ActiveMembersCount
Total de contactos suscriptos o pendientes de de-suscripción
SubscriptionType
[Opt-in (necesita confirmación de suscripción) | Free (suscripción sin confirmación)]

2.Crear o Modificar la información de una Lista de Contactos

Servicio:

/maillist/edit

Recupera, crea o edita los atributos de una lista de contactos. Si el llamado al servicio es por GET, recupera la información de la lista solicitada. Si es por POST Crea o actualiza (si se ingresa el parametro MailListID) el nombre de la lista de contactos

Parámetros:

ParámetroMailListID
RequeridoNO
TipoNúmero Entero
ExplicaciónID de lista de contactos
EjemploMailListID=2
ParámetroMailListName
RequeridoSi (Solo por POST)
TipoNúmero Entero
ExplicaciónCadena de caracteres
EjemploMailListName=Mi lista de contactos

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requeridos
errorMsg_maillistNotFound
La lista solicitada no se encuentra
errorMsg_maillistNotEdited
No se pudo editar la lista de contactos

Estructura de Salida:

maillist.MailListID
ID de lista de contacto
maillist.MailListName
Nombre de la lista de contactos

** Solo se documentan los campos mas relevantes.

Módulo report

Este modulo agrupa servicios de reportes. Útiles para saber el estado de avance de envío de una campaña o las estadísticas de una campaña.

1.Seguimiento en tiempo real

Servicio:

/report/livetrack

Informa el progreso de envío de una campaña

Parámetros:

ParámetroCampaignID
RequeridoSI
TipoNúmero Entero
ExplicaciónID de campaña
EjemploCampaignID=2
ParámetroStatisticsID
RequeridoNO
TipoNúmero Entero
ExplicaciónID de envío, Si este atributo no esta presente se tomara el ultimo envío realizado. (Compatibilidad con versión anterior)
EjemploStatisticsID=4

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requerido
errorMsg_campaignNotFound
No se encuentra la campaña

Estructura de Salida:

campaign.schedule.ScheduleStatus
Estado del envio. Posibles valores [Pending|Preparing|Sending|Paused|Halted|Completed]
report.detailsOfSend.TotalSent
Total de emails enviados
report.detailsOfSend.TotalDelivered
Total de emails enviados menos los rebotes blandos y duros
report.detailsOfSend.TotalRecipients
Total de contactos a los que se le debe enviar un correo

** Solo se documentan los campos mas relevantes.

2.Reporte general

Servicio:

/report/livetrack

Informa el detalle de una campaña con todos sus posibles envíos. (Los envíos múltiples de una campaña se mantienen por compatibilidad con un sistema anterior)

Parámetros:

ParámetroCampaignID
RequeridoSI
TipoNúmero Entero
ExplicaciónID de campaña
EjemploCampaignID=2
ParámetroStatisticsID
RequeridoNO
TipoNúmero Entero
ExplicaciónID de envío, Si este atributo no esta presente se tomara el ultimo envío realizado. (Compatibilidad con versión anterior)
EjemploStatisticsID=4

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requerido
errorMsg_campaignNotFound
No se encuentra la campaña
errorMsg_track
Error indeterminado al tratar de obtener el reporte

Estructura de salida:

report.sendFilesDetail
Apunta a un servicio que retorna un fichero con el detalle de los emails enviados
report.detailsOfSend.TotalSent
Apunta a un servicio que retorna un fichero con el detalle de los emails enviados
report.detailsOfSend.TotalDelivered
Total de emails enviados menos los rebotes blandos y duros
report.detailsOfSend.TotalRecipients
Total de contactos a los que se le debe enviar un correo
report.list.item.*
Atributos particulares de cada envío. Por lo general solo debe haber 1 envío
report.campaign.Name
Nombre de la campaña
report.campaign.publicURL
URL para compartir los reportes de la campaña

** Solo se documentan los campos mas relevantes.

3.Reportes distribuidos en el tiempo

Servicio:

/report/trackintime

Informa las lecturas (únicas y totales) y click distribuidos en el tiempo. Se recomienda usar Flot (http://code.google.com/p/flot/) para graficar este reporte

Parámetros:

ParámetroCampaignID
RequeridoSI
TipoNúmero Entero
ExplicaciónID de campaña
EjemploCampaignID=2
ParámetroStatisticsID
RequeridoNO
TipoNúmero Entero
ExplicaciónID de envío, Si este atributo no esta presente se tomara el ultimo envío realizado. (Compatibilidad con versión anterior)
EjemploStatisticsID=4

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requerido
errorMsg_campaignNotFound
No se encuentra la campaña

Estructura de salida:

report.chart.UniqueReads
Pares [tick, valor] de lecturas únicas
report.chart.Reads
Pares [tick, valor] de lecturas únicas
report.chart.LinksClicks
Pares [tick, valor] de clicks en enlaces
report.chart.Ticks
Pares [tick, etiqueta]
report.campaign.CampaignID
ID de campaña
report.campaign.StatisticsID
ID de envío

** Solo se documentan los campos mas relevantes.

4.Reporte resumido

Servicio:

/report/trackgraph

Informe resumido de lecturas, rebotes, de-suscripciones, entregas de emails, etc. Se recomienda usar Flot (http://code.google.com/p/flot/) para graficar este reporte

Parámetros:

ParámetroCampaignID
RequeridoSI
TipoNúmero Entero
ExplicaciónID de campaña
EjemploCampaignID=2
ParámetroStatisticsID
RequeridoNO
TipoNúmero Entero
ExplicaciónID de envío, Si este atributo no esta presente se tomara el ultimo envío realizado. (Compatibilidad con versión anterior)
EjemploStatisticsID=4

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requerido
errorMsg_trackGraph
Error indeterminado al tratar de obtener el reporte

Estructura de salida:

trackGraph.graph.Opened
Total de aperturas
trackGraph.graph.UniqueOpened
Total de aperturas únicas
trackGraph.graph.Clicks
Total de Clicks
trackGraph.graph.Bounces
Total de rebotes
trackGraph.graph.Unsubscribed
Total de de-suscripciones
trackGraph.graph.TotalDelivered
Total de emails enviados
trackGraph.graph.TotalRecipients
Total de destinatarios
trackGraph.graph.StatisticsID
ID de envío

** Solo se documentan los campos mas relevantes.

5.Exportación de reportes de lectura y clicks

Servicio:

/report/exportreads | /report/exportlinks

Genera un fichero csv con la informacion de lecturas (/report/exportreads) y clicks (/report/exportlinks) de una campaña. Una ves generado el fichero CSV se debe llamar al servicio "/download/export?FileToken=" para descargarlo

Parámetros:

ParámetroCampaignID
RequeridoSI
TipoNúmero Entero
ExplicaciónID de campaña
EjemploCampaignID=2
ParámetroStatisticsID
RequeridoNO
TipoNúmero Entero
ExplicaciónID de envío, Si este atributo no esta presente se tomara el ultimo envío realizado. (Compatibilidad con versión anterior)
EjemploStatisticsID=4

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requerido
errorMsg_campaignNotFound
No se encuentra la campaña
errorMsg_exportDirNotWritable
No se puede escribir el fichero a disco
errorMsg_reads
Error indeterminado

Estructura de salida:

report.campaign.Name
Nombre de campaña
report.campaign.CampaignID
ID de campaña
report.campaign.StatisticsID
ID de envio
report.totalCount
Total de registros prosados
report.FileName
Nombre del fichero generado (a usar con /download/export)

** Solo se documentan los campos mas relevantes.

Si te interesa tener acceso a mas reportes o tenes sugerencias sobre nuevos reportes, por favor comunicate con nosotros. https://administracion.donweb.com/clientes/index.php?modulo=soporte&archivo=asistente

Módulo administratoremail

Este modulo agrupa servicios de administración de listas de direcciones de correo electrónico utilizados como remitente de las campañas y formularios de suscripción.

1.Seguimiento en tiempo real

Servicio:

/administratoremail/list

Listar direcciones de correo electrónico

Parámetros:

Parámetrocount
RequeridoNO
TipoNúmero Entero
ExplicaciónNúmero de registros como máximo por página
Ejemplocount=10
Parámetroabsolutepage
RequeridoNO
TipoNúmero Entero
ExplicaciónPágina de "count" registros a la que se quiere ir. Si count vale 10 y absolutepage vale 3, entonces empezaremos a ver desde el registro 31
Ejemploabsolutepage=3

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requeridos

Estructura de Salida:

list.item.EmailID
ID del registro
list.item.EmailAddress
Dirección de correo electrónico
list.item.Name
Etiqueta o nombre asociado a la dirección de correo electrónico
list.item.DkimPubKey
Clave pública de la firma DKIM (solo si está configurada)
list.item.DkimPrivKey
Clave privada de la firma DKIM (solo si está configurada)

** Solo se documentan los campos mas relevantes.

2.Crear o Modificar la información de una dirección de correo electrónico

Servicio:

/administratoremail/edit

Recupera, crea o edita los atributos de una dirección de correo electrónico. Si el llamado al servicio es por GET, recupera la información del registro solicitado. Si es por POST Crea o actualiza (si se ingresa el parametro EmailID) los datos del registro

Parámetros:

ParámetroEmailID
RequeridoNO
TipoNúmero Entero
ExplicaciónID del Registro
EjemploEmailID=2
ParámetroName
RequeridoSi (Solo por POST)
TipoCadena de caracteres
ExplicaciónEtiqueta o nombre asociado a la dirección de correo electrónico
EjemploName=Mi nombre
ParámetroEmailAddress
RequeridoSi (Solo por POST)
TipoCadena de caracteres
ExplicaciónDirección de correo electrónico
EjemploEmailAddress=minombre@midominio.com
ParámetroDkimPubKey
RequeridoNO
TipoCadena de caracteres
ExplicaciónClave pública de la firma DKIM
EjemploDkimPubKey=BEGIN PUBLIC KEY ######### END PUBLIC KEY
ParámetroDkimPrivKey
RequeridoNO
TipoCadena de caracteres
ExplicaciónClave privada de la firma DKIM
EjemploDkimPrivKey=BEGIN RSA PRIVATE
KEY#######END RSA PRIVATE
KEY

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrectos, faltan o son requerido
errorMsg_administratorEmailNotFound
El registro solicitado no se encuentra

Estructura de salida:

email.EmailID
ID del registro
email.Name
Etiqueta o nombre asociado a la dirección de correo electrónico
email.EmailAddress
Dirección de correo electrónico
email.DkimPubKey
Clave pública de la firma DKIM
email.DkimPrivKey
Clave privada de la firma DKIM
email.DNSRecord.name
Nombre de host DNS (Utilizado para la configuración de DKIM)
email.DNSRecord.value
Valor del registro (Utilizado para la configuración de DKIM)
email.DNSRecord.type
Tipo de registro de la Zona DNS (Utilizado para la configuración de DKIM)
email.dkimIsValid
Indica si la configuración DKIM es válida

** Solo se documentan los campos mas relevantes.

3.Generación automática de Claves DKIM

Servicio:

/administratoremail/genKey

Genera automáticamete un par de claves para utilizar en la configuración DKIM

Parámetros:

Estructura de salida:

openssl.public
Clave pública de la firma DKIM
openssl.private
Clave privada de la firma DKIM

** Solo se documentan los campos mas relevantes.

4.Verificar configuración DKIM

Servicio:

/administratoremail/testdkim

Verifica si la configuración de la firma DKIM y la información de los registros DNS sean correctos y estén actualizados

Parámetros:

ParámetroEmailID
RequeridoNO
TipoNúmero Entero
ExplicaciónID del Registro
EjemploEmailID=2

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requeridos
errorMsg_administratorEmailNotFound
El registro solicitado no se encuentra

Estructura de salida:

email.EmailID
ID del registro
email.DNSRecord.name
Nombre de host DNS (Utilizado para la configuración de DKIM)
email.DNSRecord.value
Valor del registro (Utilizado para la configuración de DKIM)
email.dkimIsValid
Indica si la configuración DKIM es válida

** Solo se documentan los campos mas relevantes.

5.Borrar una dirección de correo electrónico

Servicio:

/administratoremail/delete

Elimina lógicamente una dirección de correo electrónico, el registro no estará disponible para su visualización en los listados pero podrá seguir siendo utilizado por el sistema para asegurar el correcto funcionamiento de las campañas que lo utilicen

Parámetros:

ParámetroEmailIds
RequeridoSI
TipoArreglo de números enteros
ExplicaciónID de los registros que se desea eliminar
EjemploEmailIds[]=2&EmailIds[]=5

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requeridos
errors.notDeleted
Arreglo de IDs de registro que no han podido ser eliminados

Estructura de salida:

countDeleted
Número de registros eliminados satisfactoriamente
countNotDeleted
Número de registros que no han podido ser eliminados

Módulo administrator

Este modulo agrupa servicios de administración de listas de direcciones de correo electrónico utilizados como remitente de las campañas y formularios de suscripción.

1.Estado de la cuenta del administrador

Servicio:

/administrator/status

Este servicio provee la información correspondiente al estado de la cuenta del administrador como por ejemplo: créditos disponibles, tareas programadas, procesos de importación/exportación/purga de miembros de las listas de contactos, etc

Parámetros:

Estructura de Salida:

credits.availableCredits
Cantidad de envíos disponibles que posee el administrador
jobs.item[]
Arreglo que contiene todas las tareas en segundo plano realizadas o en proceso

Cada uno de los elementos del arreglo contiene los siguientes datos:

jobs.item[].BatchJobID
Identificador de la tarea
jobs.item[].UserID
Identificador del administrador
jobs.item[].Type
Tipo de tarea:
  • BatchMaillistImport / import:
    Importación de miembros a listas
  • BatchSegment:
    Generación de lista segmentada
  • BatchMaillistOptimize:
    Optimización de lista
  • purge:
    Purga de miembros de listas
  • export:
    Exportación de listas
jobs.item[].Params
Parámetros de ingreso de la tarea
jobs.item[].Response
Respuesta de la tarea realzada o en curso
jobs.item[].Progress
estado de avance de 0 a 100
jobs.item[].Status
Descripción del estado actual de la tarea: por ejemplo
jobs.item[].Status
Descripción del estado actual de la tarea: por ejemplo.completed
jobs.item[].ErrorCode
Código de error en caso de que exista
jobs.item[].CreationDate
Fecha de creación de la tarea
jobs.item[].LastUpdate
Fecha de última actualización de la tarea
jobs.item[].DeleteDate
Fecha de eliminación de la tarea

Módulo customfield

Este modulo agrupa servicios de administración de los campos personalizados utilizados para la información de los contactos y los formularios de suscripción.

1.Listar campos personalizados

Servicio:

/customfield/list

Lista los campos personalizados que han sido configurados

Parámetros:

Parámetrocount
RequeridoNO
TipoNúmero Entero
ExplicaciónNúmero de registros como máximo por página
Ejemplocount=10
Parámetroabsolutepage
RequeridoNO
TipoNúmero Entero
ExplicaciónPágina de "count" registros a la que se quiere ir. Si count vale 10 y absolutepage vale 3, entonces empezaremos a ver desde el registro 31
Ejemploabsolutepage=3
Parámetrofilter
RequeridoNO
TipoCadena de caracteres
ExplicaciónNombre o parte del nombre por el que se filtran los registros
Ejemplofilter=Promo Verano
ParámetroorderBy
RequeridoNO
Tipo[name|id]
ExplicaciónCampo por el cual estará ordenado el listado
EjemploorderBy=Id
Parámetrodesc
RequeridoNO
Tipo[1|0]
ExplicaciónDetermina si el orden del listado es ascendente (0) o descendente (1)
Ejemplodesc=1

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requerido

Estructura de Salida:

list.item.CustomFieldID
ID del registro (campo personalizado)
list.item.FieldType
Tipo de campo personalizado:
'Text field' Campo de texto
'Password field' Campo de contraseña
'Hidden field' Campo oculto
'Notice' Bloque informativo
'Text area' Campo de texto multilínea
'Check box' Opciones de selección múltiple
'Radio button' Opciones de selección única
'List' Listado de selección múltiple
'Drop list' Listado de selección única
list.item.Validation
Tipo de validación de datos que acepta el campo:
'Do not Apply' No validar (opción por defecto)
'Numeric Only' Aceptar solo dígitos (sin espacios)
'Alpha Only' Aceptar solo letras y espacios
'Alpha Numeric Only' Aceptar solo letras, números y espacios
'Email Format Check' Aceptar solo direcciones de Email
'Custom' Personalizado (requiere que sea configurada una exporesión regular personalizada de validación)
list.item.ValidationCustomRegExp
Expresión regular personalizada utilizadao para validar los datos del campo
list.item.IsMultipleSelect
Indica si acepta valores múltimples
list.item.Values.Option
Arreglo de valores que el campo posee

2.Crear o Modificar la información de un campo personalizado

Servicio:

/customfield/edit

Recupera, crea o edita los atributos de un campo personalizado. Si el llamado al servicio es por GET, recupera la información del registro solicitado. Si es por POST Crea o actualiza (si se ingresa el parametro CustomFieldID) los datos del registro

Parámetros:

ParámetroCustomFieldID
RequeridoNO
TipoNúmero Entero
ExplicaciónID del registro
EjemploEmailID=2
ParámetroTitle
RequeridoSi (Solo por POST)
TipoCadena de caracteres
ExplicaciónEtiqueta o nombre del campo personalizado
EjemploTitle=Color
ParámetroFieldType
RequeridoSi (Solo por POST)
TipoCadena de caracteres
ExplicaciónTipo de campo personalizado
EjemploFieldType=List
ParámetroValidation
RequeridoNO
TipoCadena de caracteres
ExplicaciónTipo de validación de datos que acepta el campo
EjemploValidation=Custom
ParámetroValidationCustomRegExp
RequeridoSi (Solo si el parámetro Validation es de tipo Custom)
TipoCadena de caracteres
ExplicaciónExpresión regular personalizada utilizadao para validar los datos del campo
EjemploValidationCustomRegExp=/^[a-zA-Z0-9]*$/
ParámetroDefaultValue
RequeridoNO
TipoCadena de caracteres
ExplicaciónValores por defecto que posee el campo (utilizado solo en campos Text field, Password field, Text area, Notice y Hidden field)
EjemploDefaultValue=0800MiTelefono
ParámetroItemsNames
RequeridoNO
TipoArreglo
ExplicaciónListado de etiquetas de las opciones del campo (utilizado solo en campos tipo List, Drop list, Radio button y Check box) [ver nota]
EjemploItemsNames[]=Rojo&ItemsNames[]=Blanco
ParámetroItemsValues
RequeridoNO
TipoArreglo
ExplicaciónListado de valores de las opciones del campo (utilizado solo en campos tipo List, Drop list, Radio button y Check box) [ver nota]
EjemploItemsValues[]=red&ItemsValues[]=white
ParámetroItemsSelectedValues
RequeridoNO
TipoArreglo
ExplicaciónListado de las opciones del campo marcadas como seleccionadas (utilizado solo en campos tipo List, Drop list, Radio buttony Check box)
EjemploItemsSelectedValues[]=white
ParámetroItemsIsMultipleSelect
RequeridoNO
TipoEntero [1|0]
ExplicaciónIndica si el campo acepta múltiples valores
EjemploItemsIsMultipleSelect=1

Nota: Los parámetros ItemsNames eItemsValues están relacionados entre sí a través de la correspondencia de las claves de ambos arreglos. Ej. ItemsNames[5] posee la etiqueta de la opción cuyo valor se encuentra indicado en ItemsValues[5]

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requeridos
errorMsg_customfieldNotFound
El registro solicitado no se encuentra

Estructura de salida:

customField.CustomFieldID
ID del registro (campo personalizado)
customField.Title
Etiqueta/nombre del campo
customField.FieldType
Tipo de campo personalizado
customField.Validation
Tipo de validación de datos que acepta el campo
customField.ValidationCustomRegExp
Expresión regular personalizada utilizadao para validar los datos del campo
customField.IsMultipleSelect
Indica si acepta valores múltimples
customField.Values.Option
Arreglo de valores que el campo posee

** Solo se documentan los campos mas relevantes.

3.Borrar un campo personalizado

Servicio:

/customfield/delete

Elimina definitivamente un campo personalizado, el registro no estará más disponible para su utilización

Parámetros:

ParámetroCustomFieldIds
RequeridoSI
TipoArreglo de números enteros
ExplicaciónID de los registros que se desea eliminar
EjemploCustomFieldIds[]=2&CustomFieldIds[]=5

Errores:

errorMsg_formValidations
Uno o varios de los parámetros de entrada son incorrecto, faltan o son requeridos
errors.notDeleted
Arreglo de IDs de registro que no han podido ser eliminados

Estructura de salida:

countDeleted
Número de registros eliminados satisfactoriamente
countNotDeleted
Número de registros que no han podido ser eliminados


Mensaje enviado con éxito
Ocurrió un error al enviar el mensaje.
Nuestros teléfonos
Formulario de contacto
Chatea con un asesor