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=1asd Respuesta:
        {
        "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ámetro count
Requerido NO
Tipo Número Entero > 0
Explicación Número de campañas a devolver como máximo
Ejemplo count=10
Parámetro absolutepage
Requerido NO
Tipo Número Entero > 0
Explicación Pá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
Ejemplo absolutepage=3
Parámetro status
Requerido NO
Tipo Arreglo de Cadena de Caracteres
Valores Posibles:

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

Completed(Enviada)
Explicación Tipos de estado por los que se desea filtrar la lista
Ejemplo status[] = Inactive&status[] = Completed
Parámetro filter
Requerido NO
Tipo Cadena de Caracteres
Explicación Nombre o parte del nombre por el que se filtran las campañas
Ejemplo filter=Promo Verano
Parámetro orderBy
Requerido NO
Tipo Cadena de Caracteres
Explicación Valores posibles:
name (Nombre de la campaña)
id (Id de la campaña)
Ejemplo orderBy=name
Parámetro desc
Requerido NO
Tipo Número Entero
Valores posibles:
1 (si)
0 (no)
Explicación Determina si el orden del listado es ascendente o descendente
Ejemplo desc=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ámetro CampaignID
Requerido SI
Tipo Número Entero > 0
Explicación Identificador de la campaña a recuperar
Ejemplo CampaignID=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ámetro CampaignID
Requerido NO
Tipo Número Entero > 0
Explicación Identificador de la campaña que se quiere modificar
Ejemplo CampaignID=2
Parámetro CampaignName
Requerido SI
Tipo Cadena de caracteres
Explicación Identificador de la campaña que se quiere modificar
Ejemplo CampaignName=Campaña de navidad
Parámetro CampaignSubject
Requerido NO
Tipo Cadena de caracteres
Explicación Asunto con el que se enviará la campaña
Ejemplo CampaignSubject=Feliz Navidad
Parámetro MailListsIds
Requerido NO
Tipo Array de enteros > 0
Explicación IDs de listas a las que se enviará la campaña
Ejemplo MailListsIds[]=4
Parámetro FromID
Requerido NO
Tipo Número Entero > 0
Explicación ID de email de administrador designado como origen de la campaña (FROM)
Ejemplo FromID=3
Parámetro ReplyToID
Requerido NO
Tipo Número Entero > 0
Explicación ID del email de administrador designado como email de respuesta (ReplyTO)
Ejemplo ReplyToID=4
Parámetro TrackLinkClicks
Requerido NO
Tipo 0 o 1 (por defecto 0)
Explicación Si el parámetros es = 1, se registraran todos los clicks que se hagan en los links una vez enviada la campaña
Ejemplo TrackLinkClicks=1
Parámetro TrackReads
Requerido NO
Tipo 0 o 1 (por defecto 0)
Explicación Si el parámetros es = 1, se registrará cada vez que un contacto abra el email de campaña
Ejemplo TrackReads=1
Parámetro TrackAnalitics
Requerido NO
Tipo 0 o 1 (por defecto 0)
Explicación Si 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
Ejemplo TrackAnalitics=0
Parámetro SendStateReport
Requerido NO
Tipo 0 o 1 (por defecto 0)
Explicación Si 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
Ejemplo SendStateReport=0
Parámetro ScheduleCampaign
Requerido NO
Tipo 0 o 1 (por defecto 0)
Explicación Si el parámetros es = 1, si se debe registrar la "Programación de envío" de la campaña
Ejemplo ScheduleCampaign=1
Parámetro SendDate
Requerido NO
Tipo Fecha con el formato yyyy-MM-dd HH:mm:ss
Explicación Fecha de envío de la campaña. Este parámetro depende de "ScheduleCampaign"
Ejemplo SendDate=2012-11-20 14:10:00
Parámetro AddToPublicArchive
Requerido NO
Tipo 0 o 1 (por defecto 0)
Explicación Agregar la campaña al "archivo publico de campañas"
Ejemplo AddToPublicArchive=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ámetro CampaignID
Requerido SI
Tipo Número Entero
Explicación Identificador de la campaña a recuperar
Ejemplo CampaignID=10
Parámetro Email
Requerido Solo si el formato es "email"
Tipo Dirección de correo electrónico
Explicación Destinatario de la pre-visualización de la campaña
Ejemplo Email=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ámetro CampaignIds
Requerido SI
Tipo Arreglo de Números Enteros
Explicación Ids de campañas a eliminar
Ejemplo CampaignIds[]=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ámetro CampaignID
Requerido SI
Tipo Número Entero
Explicación Identificador de la campaña a enviar
Ejemplo CampaignID=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ámetro CampaignID
Requerido SI
Tipo Número Entero
Explicación Identificador de la campaña a pausar
Ejemplo CampaignID=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ámetro CampaignID
Requerido SI
Tipo Número Entero > 0
Explicación Identificador de la campaña a recuperar
Ejemplo CampaignID=10
Parámetro URL
Requerido NO
Tipo URL
Explicación Direcció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
Ejemplo URL=http://misitio.com/modelo.html
Parámetro HTML
Requerido NO
Tipo Cadena de Caracteres
Explicación Cuerpo del email en HTML
Ejemplo PlainText=mi contenido
Parámetro PlainText
Requerido NO
Tipo Cadena de Caracteres
Explicación Cuerpo del email en texto plano. Utilizado por los clientes que no soporten HTML
Ejemplo PlainText=mi contenido
Parámetro RemoteUnsubscribeBlock
Requerido NO
Tipo Número Entero
Explicación Si 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
Ejemplo RemoteUnsubscribeBlock=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ámetro retrieveList
Requerido NO
Tipo Cadena de caracteres
Explicación Diseños de emails de tus campañas
Ejemplo retrieveList=defaulTemplates
Parámetro offset
Requerido NO
Tipo Número Entero
Explicación Cantidad de registros a partir de los cuales empezar a recuperar el listado.
Ejemplo offset=10
Parámetro limit
Requerido NO
Tipo Número Entero
Explicación Cantidad de registros a recuperar el listado.
Ejemplo limit=10
Parámetro filterListByCategory
Requerido NO
Tipo Arreglo de enteros
Explicación Grupo de filtros de búsqueda por categoría general
Ejemplo filterListByCategory[]=2
Parámetro filterListByCategory2
Requerido NO
Tipo Arreglo de enteros
Explicación Grupo de filtros de búsqueda por colores
Ejemplo filterListByCategory2[]=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ámetro MailListsIds
Requerido NO
Tipo Array
Explicación Obtener solo miembros de las listas seleccionadas
Ejemplo MailListsIds[]=125
Parámetro count
Requerido NO
Tipo Número Entero
Explicación Número de contactos a devolver como máximo
Ejemplo count=10
Parámetro absolutepage
Requerido NO
Tipo Número Entero
Explicación Pá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
Ejemplo absolutepage=3
Parámetro filter
Requerido NO
Tipo Cadena de caracteres
Explicación Email o parte de email por el que se filtran los contactos
Ejemplo filter=nombre@dominio.com
Parámetro orderBy
Requerido NO
Tipo Número entero Cadena de caracteres
Valores posibles:
name
id
Explicación Campo por el cual estará ordenado el listado.
Ejemplo orderBy=name
Parámetro desc
Requerido NO
Tipo Número entero
Valores posibles:
0
1
Explicación Campo por el cual estará ordenado el listado.
Ejemplo desc=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ámetro MemberID
Requerido NO
Tipo Número Entero
Explicación ID del contacto que se quiere modificar. Solo necesario si se quiere recuperar la información o modificar el contacto.
Ejemplo MemberID=2
Parámetro MailListID
Requerido NO
Tipo Número Entero
Explicación Lista a la cual se inscribirá inicialmente el contacto. Solo una lista debe ser asignada.
Ejemplo MailListID=4
Parámetro Email
Requerido NO
Tipo Cadena de caracteres
Explicación Dirección de correo que se quiere suscribir
Ejemplo Email=rogelio@donweb.com
Parámetro CustomField<1..100>
Requerido NO
Tipo Arreglo de cadena
Explicación Valores para cada campo personalizado. La parte numérica del parámetro es el ID del campo personalizado "CustomFieldID"
Ejemplo CustomField1=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ámetro MemberIds
Requerido SI
Tipo Arreglo de enteros
Explicación Todos los IDs de contactos a los que se desea modificar el estado.
Ejemplo MemberIds[]=1&MemberIds[]=2
Parámetro MailListsIds
Requerido SI
Tipo Arreglo de enteros
Explicación Todas las listas de contactos co las que se desea operar.
Ejemplo MailListsIds[]=4&MailListsIds[]=9
Parámetro SubscriptionStatus
Requerido SI
Tipo Cadena de caracteres
Explicación Indica 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)
Ejemplo SubscriptionStatus=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ámetro emails
Requerido SI
Tipo Arreglo de cadenas
Explicación Todos los email de contactos a des-suscribir
Ejemplo emails[]=toto@tritolo.com&emails[]=juena@gmail.com
Parámetro MailListsIds
Requerido SI
Tipo Arreglo de enteros
Explicación Todas las listas de contactos a la que se quieren des-suscribir los MembersIds
Ejemplo MailListsIds[]=4&MailListsIds[]=9
Parámetro ban
Requerido NO
Tipo Entero[0|1]
Explicación Crea una regla de exclusión por cada email del parámetro emails
Ejemplo ban=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ámetro count
Requerido NO
Tipo Número Entero
Explicación Número de registros como máximo por página
Ejemplo count=10
Parámetro absolutepage
Requerido NO
Tipo Número Entero
Explicación Pá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
Ejemplo absolutepage=3
Parámetro filter
Requerido NO
Tipo Cadena de caracteres
Explicación Nombre o parte del nombre por el que se filtran los registros
Ejemplo filter=Promo Verano
Parámetro orderBy
Requerido NO
Tipo Cadena de caracteres posibles:
  • name (nombre de la lista)
  • activememberscount (cantidad de miembros activos)
  • memberscount (cantidad de miembros totales)
Explicación Campo por el cual estará ordenado el listado
Ejemplo orderBy=name
Parámetro desc
Requerido NO
Tipo [1|0]
Explicación Determina si el orden del listado es ascendente (0) o descendente (1)
Ejemplo desc=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ámetro MailListID
Requerido NO
Tipo Número Entero
Explicación ID de lista de contactos
Ejemplo MailListID=2
Parámetro MailListName
Requerido Si (Solo por POST)
Tipo Número Entero
Explicación Cadena de caracteres
Ejemplo MailListName=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ámetro CampaignID
Requerido SI
Tipo Número Entero
Explicación ID de campaña
Ejemplo CampaignID=2
Parámetro StatisticsID
Requerido NO
Tipo Número Entero
Explicación ID de envío, Si este atributo no esta presente se tomara el ultimo envío realizado. (Compatibilidad con versión anterior)
Ejemplo StatisticsID=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ámetro CampaignID
Requerido SI
Tipo Número Entero
Explicación ID de campaña
Ejemplo CampaignID=2
Parámetro StatisticsID
Requerido NO
Tipo Número Entero
Explicación ID de envío, Si este atributo no esta presente se tomara el ultimo envío realizado. (Compatibilidad con versión anterior)
Ejemplo StatisticsID=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ámetro CampaignID
Requerido SI
Tipo Número Entero
Explicación ID de campaña
Ejemplo CampaignID=2
Parámetro StatisticsID
Requerido NO
Tipo Número Entero
Explicación ID de envío, Si este atributo no esta presente se tomara el ultimo envío realizado. (Compatibilidad con versión anterior)
Ejemplo StatisticsID=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ámetro CampaignID
Requerido SI
Tipo Número Entero
Explicación ID de campaña
Ejemplo CampaignID=2
Parámetro StatisticsID
Requerido NO
Tipo Número Entero
Explicación ID de envío, Si este atributo no esta presente se tomara el ultimo envío realizado. (Compatibilidad con versión anterior)
Ejemplo StatisticsID=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ámetro CampaignID
Requerido SI
Tipo Número Entero
Explicación ID de campaña
Ejemplo CampaignID=2
Parámetro StatisticsID
Requerido NO
Tipo Número Entero
Explicación ID de envío, Si este atributo no esta presente se tomara el ultimo envío realizado. (Compatibilidad con versión anterior)
Ejemplo StatisticsID=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ámetro count
Requerido NO
Tipo Número Entero
Explicación Número de registros como máximo por página
Ejemplo count=10
Parámetro absolutepage
Requerido NO
Tipo Número Entero
Explicación Pá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
Ejemplo absolutepage=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ámetro EmailID
Requerido NO
Tipo Número Entero
Explicación ID del Registro
Ejemplo EmailID=2
Parámetro Name
Requerido Si (Solo por POST)
Tipo Cadena de caracteres
Explicación Etiqueta o nombre asociado a la dirección de correo electrónico
Ejemplo Name=Mi nombre
Parámetro EmailAddress
Requerido Si (Solo por POST)
Tipo Cadena de caracteres
Explicación Dirección de correo electrónico
Ejemplo EmailAddress=minombre@midominio.com
Parámetro DkimPubKey
Requerido NO
Tipo Cadena de caracteres
Explicación Clave pública de la firma DKIM
Ejemplo DkimPubKey=BEGIN PUBLIC KEY ######### END PUBLIC KEY
Parámetro DkimPrivKey
Requerido NO
Tipo Cadena de caracteres
Explicación Clave privada de la firma DKIM
Ejemplo DkimPrivKey=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ámetro EmailID
Requerido NO
Tipo Número Entero
Explicación ID del Registro
Ejemplo EmailID=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ámetro EmailIds
Requerido SI
Tipo Arreglo de números enteros
Explicación ID de los registros que se desea eliminar
Ejemplo EmailIds[]=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ámetro count
Requerido NO
Tipo Número Entero
Explicación Número de registros como máximo por página
Ejemplo count=10
Parámetro absolutepage
Requerido NO
Tipo Número Entero
Explicación Pá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
Ejemplo absolutepage=3
Parámetro filter
Requerido NO
Tipo Cadena de caracteres
Explicación Nombre o parte del nombre por el que se filtran los registros
Ejemplo filter=Promo Verano
Parámetro orderBy
Requerido NO
Tipo [name|id]
Explicación Campo por el cual estará ordenado el listado
Ejemplo orderBy=Id
Parámetro desc
Requerido NO
Tipo [1|0]
Explicación Determina si el orden del listado es ascendente (0) o descendente (1)
Ejemplo desc=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ámetro CustomFieldID
Requerido NO
Tipo Número Entero
Explicación ID del registro
Ejemplo EmailID=2
Parámetro Title
Requerido Si (Solo por POST)
Tipo Cadena de caracteres
Explicación Etiqueta o nombre del campo personalizado
Ejemplo Title=Color
Parámetro FieldType
Requerido Si (Solo por POST)
Tipo Cadena de caracteres
Explicación Tipo de campo personalizado
Ejemplo FieldType=List
Parámetro Validation
Requerido NO
Tipo Cadena de caracteres
Explicación Tipo de validación de datos que acepta el campo
Ejemplo Validation=Custom
Parámetro ValidationCustomRegExp
Requerido Si (Solo si el parámetro Validation es de tipo Custom)
Tipo Cadena de caracteres
Explicación Expresión regular personalizada utilizadao para validar los datos del campo
Ejemplo ValidationCustomRegExp=/^[a-zA-Z0-9]*$/
Parámetro DefaultValue
Requerido NO
Tipo Cadena de caracteres
Explicación Valores por defecto que posee el campo (utilizado solo en campos Text field, Password field, Text area, Notice y Hidden field)
Ejemplo DefaultValue=0800MiTelefono
Parámetro ItemsNames
Requerido NO
Tipo Arreglo
Explicación Listado de etiquetas de las opciones del campo (utilizado solo en campos tipo List, Drop list, Radio button y Check box) [ver nota]
Ejemplo ItemsNames[]=Rojo&ItemsNames[]=Blanco
Parámetro ItemsValues
Requerido NO
Tipo Arreglo
Explicación Listado de valores de las opciones del campo (utilizado solo en campos tipo List, Drop list, Radio button y Check box) [ver nota]
Ejemplo ItemsValues[]=red&ItemsValues[]=white
Parámetro ItemsSelectedValues
Requerido NO
Tipo Arreglo
Explicación Listado de las opciones del campo marcadas como seleccionadas (utilizado solo en campos tipo List, Drop list, Radio buttony Check box)
Ejemplo ItemsSelectedValues[]=white
Parámetro ItemsIsMultipleSelect
Requerido NO
Tipo Entero [1|0]
Explicación Indica si el campo acepta múltiples valores
Ejemplo ItemsIsMultipleSelect=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ámetro CustomFieldIds
Requerido SI
Tipo Arreglo de números enteros
Explicación ID de los registros que se desea eliminar
Ejemplo CustomFieldIds[]=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


close

Aviso de mantenimiento

Estimado usuario,

Te informamos que a partir de las 3:00 AM y hasta las 6:00 AM del sábado 9/11/2019 (hora de Argentina), estaremos realizando tareas de mantenimiento que afectarán a nuestros portales: Donweb.com, EnvialoSimple.com y también al Área de Clientes. Durante este período es posible que no tengas acceso a tu Área de Cliente, tu cuenta de EnvialoSimple o SitioSimple. También puede ocurrir que no puedas realizar compras en nuestros sitios. Estos trabajos NO afectan de ninguna manera al funcionamiento de tus servicios de hosting, dominio, SSL, etc.

Saludos cordiales.

Donweb Team.

Selecciona una tarjeta y completa los campos con la información solicitada:

  • Tarjeta Visa
  • Tarjeta Master Card
  • Tarjeta American Express
* El nombre no puede ser vacío
* Ingresa un numero de tarjeta válido
  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12
  • 2018
  • 2019
  • 2020
  • 2021
  • 2022
  • 2023
  • 2024
  • 2025
  • 2026
  • 2027
  • 2028
  • 2029
  • 2030
  • 2031
  • 2032
  • 2033
  • 2034
  • 2035
  • 2036
  • 2037
  • 2038
  • 2039
  • 2040
  • 2041
  • 2042
* Completa la fecha de vencimiento
* Ingresa un código válido

Tus datos fueron enviados correctamente

Por favor, no te vayas ni refresques la página por unos minutos

Cerrar