Guía paso a paso: cómo crear y actualizar una lista de suscripciones de correo con la API de Mailrelay

Lista de suscripciones

Crear y actualizar una lista de suscripciones de email es más sencillo de lo que parece. En este post te cuento todos los pasos necesarios con la Api de Mailrelay para que manejar todas las sucripciones de email sea una tarea muy sencilla.

¡Hola! soy Mar Sanchis, una apasionada del mundo digital y del marketing online. A continuación e voy a contar cómo me decidí a usar una lista de suscripciones con Mailrelay, y sobre todo, cómo he llevado a cabo todo el proceso, para que tú también puedas hacer tus listas de suscriptores.

A pesar de lo fácil que WordPress y otros CMS lo ponen hoy en día, decidí aprender y lanzarme a escribir yo misma el código para hacer una web.

El resultado fue Traumatología y más, una web que llevo junto con mi marido, que es traumatólogo.

En ella orienta online a pacientes y aporta información médica de rigor en un internet plagado de contenidos de salud de dudosa calidad y procedencia.

Una cosa llevó a la otra, y cuando quise montar un sistema de lista de suscripciones de correo automatizado vi bastantes inconvenientes en la herramienta de email marteking que utilizaba, un gracioso chimpancé…

Entonces di con Mailrelay, y enseguida quedé entusiasmada ya que me daba las funcionalidades que mi web necesitaba:

Así que no me lo pensé dos veces y me lancé a investigar sobre la integración con su API

Se me plantearon bastantes dudas, pero gracias a su maravilloso soporte técnico a día de hoy tenemos montado un sistema para las suscripciones, gestión de correo automático y con autorespondedores.

Si eres desarrollador o amateur como yo, y quieres saber cómo hacer una integración con la API de Mailrelay, no te pierdas este tutorial en el que te lo explico paso a paso con un caso práctico.

En primer lugar, voy a ponerte en situación:

  • Imagina que tienes una web en la que manejas tu propia base de datos para proporcionar a tus usuarios un área personal
  • Ya has diseñado unos bonitos formularios para incentivar a tus lectores a que se registren en tu lista
  • También tienes un apartado en el que pueden editar sus datos (nombre de usuario, email, o dirección por ejemplo)
  • Además quieres que tu lista de suscriptores se vaya guardando también en Mailrelay para así poder empezar a mandarles campañas de email o newsletters
  • Y por último, quieres montar un sistema de autoresponders con campos personalizados que te facilite un poco la vida
  • ¿Cómo se puede encajar todo esto usando la API de Mailrelay?

Sigue leyendo porque te lo voy a desgranar paso a paso.

Paso 1: ¿Cómo crear listas de suscripciones mediante la API?

Qué has de hacer en Mailrelay

  • En el menú de Mailrelay, ve a “Grupos de suscriptores” y pulsa el botón “Crear”
  • Elige un nombre para tu lista de suscripciones (grupodeejemplo) y también puedes poner una descripción
  • Si quieres que empiece a funcionar, debes ticar las opciones “Activar” y “Visible”
  • Y por supuesto, clica en el botón “2Salvar”

Ya tienes el germen de tu lista de usuarios registrados. Ahora solo falta llenarla de futuros nuevos registros.

Si necesitas importar usuarios desde otro proveedor de email marketing, en este otro post puedes ver cómo hacerlo

Qué código PHP has de incluir en tu página

Antes de ponernos a hablar de código, debes ir al menú “Configuración” y seleccionar “Acceso a la API”.

Tras pulsar el botón “Generar clave API”, aparecerá un código alfanumérico que deberás copiar.

Ahora empieza la acción. Vamos al código PHP.

Lo primero que hay que incluir es una función que recoja los datos de tu formulario de registro y los vuelque en Mailrelay: se trata de la función ‘addSubscriber’

El código PHP de esta función es el siguiente. Échale un vistazo y abajo te explico que has de poner:

$curl = curl_init(‘http:// tudominiohttp://.ipzone.com/ccm/admin/api/version/2/&type=json’);
 $postData = array(
 ‘function’ => ‘addSubscriber’,
 ‘apiKey’ => ‘ponaquituclaveAPI‘,
 ‘email’ => $email,
 ‘name’ => $usuario,
 ‘groups’ => array( 1 ),
 );
$post = http_build_query($postData);
 curl_setopt($curl, CURLOPT_POST, true);
 curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 $json = curl_exec($curl);
 $resu = json_decode($json);
 $post = http_build_query($postData);curl_setopt($curl, CURLOPT_POST, true);
 curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$json = curl_exec($curl);
 $resu = json_decode($json);if ($resu->status == 0) { throw new Exception(‘Hubo un fallo durante la ejecución de la petición de datos.’); }

puedes descargar este código aquí

En la primera sentencia, donde pone “tudominio” debes escribir el tuyo sin .es, .com etc. Es decir, en mi caso sería:

$curl = curl_init(‘http://traumatologiaymashttp://.ipzone.com/ccm/admin/api/version/2/&type=json’);

En apiKey pon el código alfanumérico que has copiado antes. Si tu código fuese Fr46yIpL0 quedaría así:

‘apiKey’ => ‘ Fr46yIpL0’,

En esta función hay una serie de campos, como por ejemplo “name” o “groups” que son fundamentales. Ya que como mínimo en una web se pide el email y este lo tienes que asignar a por lo menos un grupo de suscriptores.

En el ejemplo que te he puesto se pide a los usuarios que indiquen un nombre y un email al registrarse en el formulario de la web.

Pero la función “addSubscriber” también permite que añadas más campos predefinidos en el caso de que lo necesites. Puedes verlos aquí

En el formulario los datos se mandan vía “POST”. Así que para recuperarlos puedes utilizar estas sentencias (trim es por si han puesto por error algún espacio en blanco):

$usuario=trim($_POST[‘usuario’]);
$email=trim($_POST[‘email’]);

Las variables “$usuario” y “$email” contienen los datos del nombre que ha elegido un usuario al registrarse en la web junto con el correo electrónico que ha facilitado.

Así que se las pasamos a la función “addSubscriber”:

‘email’ => $email,
‘name’ => $usuario,

Y por último falta “groups”, que es un “array” en el que has de indicar en qué grupos quieres dar de alta a los usuarios.

En este ejemplo he creado un solo grupo. Sólo tienes que ir al menú “Grupos de Suscriptores” para ver el ID del grupo. En este caso el ID de mi grupo es 1.

‘groups’ => array( 1 ),

Si tuvieras más grupos, deberías poner los IDs separados por comas:

‘groups’ => array( 1,3,4 ),

Cuando se ejecute este código tras registrarse un usuario en tu web, podrás ver sus datos en el apartado “Suscriptores

Paso 2: Cómo crear campos personalizados

Crear campos personalizados

Ahora imagina que necesites mandarle un email de recordatorio a tu usuario cuando haga una determinada acción en la web.

¿Y cómo se puede hacer esto? Pues con los campos personalizados.

Qué has de hacer en Mailrelay

Para este ejemplo voy a crear 2 campos personalizados.

En el menú “Configuración” haz clic en “Campos Personalizados” y después en el botón “Crear”.

  • En posición le asigno el número “1”
  • En título elijo personalizado1 como nombre para el campo
  • En tipo de campo para este ejemplo, voy a elegir “Fecha” (así podrás usarlo con los autorespondedores como te cuento más adelante)
  • Y por último la opción “Habilitar” marcada

Sólo hay que repetir el proceso con el campo de nombre personalizado2, al que asignaré el número “2

Qué código PHP has de incluir en tu página

El código es el mismo que te he indicado antes, sólo que debajo del campo “groups” se añade el campo “customFields” tal y como puedes ver abajo:

$curl = curl_init(‘http:// http://ift.tt/29wOHxg;);
 $postData = array(
 ‘function’ => ‘addSubscriber’,
 ‘apiKey’ => ‘ponaquituclaveAPI’,
 ‘email’ => $email,
 ‘name’ => $usuario,
 ‘groups’ => array( 1 ),
‘customFields’ => array(‘f_1’ => ‘0000–00–00′,’f_2’ => ‘0000–00–00’)
 );

puedes descargar este código aquí

Es muy importante que lo hagas de esta forma:

‘f_1’=>’valorquequierasasignar’
  • Donde 1 es el ID del campo personalizado (el ID se puede ver desde la opción anterior Configuración>Campos personalizados junto al nombre de cada campo)
  • Y en este caso he asignado una fecha vacía ‘0000–00–00’. Importante: el formato de fecha es YYYY-MM-DD.

Cuando se ejecute este código al usuario registrado además de guardarse su email, nombre de usuario y asignarle al grupo que he creado, también se le asignará el valor 0000–00–00 al campo personalizado 1 y personalizado2.

En el último paso te contaré como sacarle partido a estos campos. De momento sigamos con lo básico.

Paso 3: Cómo editar los datos de un usuario registrado

Y qué pasa si por ejemplo un usuario de la lista de suscripciones quiere modificar sus datos desde su aérea personal en tu web, ¿cómo se editan sus datos de registro en Mailrelay también?

Pues bien, para eso existe la función “getSubscribers” y “updateSubscriber”

Existen muchos casos para los que estas funciones son necesarias:

  • Si quieres cambiar el valor de un campo personalizado cuando el usuario hace determinada acción (por ejemplo abandonar un carrito de compra)
  • Si el usuario decide cambiar alguno de los datos iniciales con los que se registró
  • Etc.

Qué código PHP has de incluir en tu página

En este caso voy a identificar un usuario que quiere cambiar su nombre de usuario por otro nuevo.

Primero hay que invocar la función “getSubscribers”.

Esta función lo que hace es buscar en tu base de datos de Mailrelay el usuario concreto que le indiques.

Y para indicarle qué usuario quieres cambiar es necesario que elijas un campo. Por ejemplo, en este caso me voy a servir del campo “email”.

En la variable “$email” ya tengo asignado el valor del campo “email” del usuario que hay que actualizar.

Por ejemplo, he volcado este dato como antes:

$email=trim($_POST[‘email’]);

Y el código a añadir sería el siguiente:

$curl =curl_init(‘http://ift.tt/29wOHxg;);
 $postData = array(
 ‘function’ => ‘getSubscribers’,
 ‘apiKey’ => ‘ ponaquituclaveAPI ‘,
‘email’ => $email
 );
curl_setopt($curl, CURLOPT_POST, true);
 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$json = curl_exec($curl);
 $resu = json_decode($json);
$idrelay=$resu->data[0]->id;

Fíjate en la sentencia “‘email’ => $email”. Con ella le digo a la función qué usuario quiero seleccionar de la base de datos de Mailrelay.

Y al final del código he creado una variable “$idrelay” en la que vuelco el ID de Mailrelay de ese usuario.

Con el dato del ID del usuario ya se puede invocar a la función “updateSubscriber”.

Después del código que he puesto arriba, hay que añadir este otro que ahora te explico:

$postData = array(
 ‘function’ => ‘updateSubscriber’,
 ‘apiKey’ => ‘ ponaquituclaveAPI ‘,
‘id’ => $idrelay,
 ‘email’ => $email,
 ‘name’ => $nuevonombreusuario,
 ‘groups’ => array( 1 ),
 ‘customFields’ => array(‘f_1′ => $resu->data[0]->fields->f_1,’f_2’ => $resu->data[0] >fields->f_2)
 );
$post = http_build_query($postData);curl_setopt($curl, CURLOPT_POST, true);
 curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$json = curl_exec($curl);
 $resu = json_decode($json);if ($resu->status == 0) { throw new Exception(‘Hubo un fallo durante la ejecución de la petición de datos.’); }

puedes descargar este código aquí

Con la sentencia “‘id’ => $idrelay” le digo que modifique el usuario con el valor de ID que contiene la variable “$idrelay”

En este ejemplo, quiero actualizar el nombre del usuario.

Así que en la variable “$nuevonombreusuario” ya he volcado previamente el nuevo nombre. Y en la función “updateSubscribers” asigno el contenido de esta variable al campo “name”.

¡Muy importante!: Aunque no quieras modificar el resto de campos de tu usuario, has de reasignarles el mismo valor que ya tienen.

En este caso, hay que hacerlo con el campo email y los campos personalizados.

El valor del primer campo se rescata con la sentencia:

‘f_1’ => $resu->data[0]->fields->f_1

Y el valor del segundo con:

‘f_2’ => $resu->data[0]->fields->f_2

Recuerda que siempre hay que poner la “f” seguida del ID del campo personalizado en cuestión (no pongas el nombre de tu campo personalizado).

Por último en “groups” indico que quiero que se modifiquen esos datos para la lista con ID 1:

‘groups’ => array( 1 ),

Si tuviera más listas creadas, hubiera querido que los datos se actualizasen en todas ellas.

Paso 4: Campos personalizados y autorespondedores, ideas prácticas para la gestión de tus suscripciones

Autorespondedores y automatización

Por último, imagina que quieres recordarle algo a tus usuarios mandándoles un email automático.

Por ejemplo, si han dejado a medias el carrito de compra y quieres animarles a que finalicen el pago.

Esto se puede hacer mezclando el uso de campos personalizados junto con los autorespondedores.

Qué has de hacer en Mailrelay

Por ejemplo, voy a configurar un autorespondedor para que se active al día siguiente de que un usuario registrado haya dejado una compra a medias.

Primero ve a la opción del menú “Autoresponder” y luego a “Autoresponder” también.

Pulsa el botón “Crear”:

  • En el campo nombre voy a poner: “Recordatorio carrito compra abandonado”
  • En boletín hay que elegir el que quieras que se le mande. Previamente habrás tenido que crearlo. Aquí tienes un artículo que explica como crear unas buenas plantillas para tus emails
  • En campo elijo mi campo personalizado: “personalizado2″
  • En intervalo pongo -1, puesto que quiero que se mande al día siguiente (si quisieras que pasasen 2 días tendrías que poner -2)
  • Hora, por ejemplo, las 10:00
  • Y en grupos, elijo el nombre del grupo que creé en el paso 1 de este tutorial (grupodeejemplo)
  • Por último clico “Incluir Importados” y “Habilitar”

Pulsa el botón “Salvar”

Después de seguir estos pasos, ya tengo configurado un autorespondedor que mandará un boletín el día después de la fecha que contenga el campo personalizado “personalizado2″.

¡Ya casi estamos! Vamos a por el código.

Qué código PHP has de incluir en tu página

El código es prácticamente el mismo que el del Paso 3, con la salvedad de que ahora se van a modificar los campos personalizados.

Recuerda que para este ejemplo los he creado de tipo fecha, así se podrán usar con los autorespondedores.

En primer lugar en el código PHP hay que incluir una variable que recoja la fecha actual en el formato de Mailrelay, que te recuerdo que era año-mes-día:

$fechahoy=date(“Y-m-d”);

Y ahora el resto del código:

$curl =curl_init(‘http://ift.tt/29wOHxg;);
 $postData = array(
 ‘function’ => ‘getSubscribers’,
 ‘apiKey’ => ‘ponaquituclaveAPI’,
 ‘email’ => $emailrelay
 );
curl_setopt($curl, CURLOPT_POST, true);
 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$json = curl_exec($curl);
 $res = json_decode($json);if ($res->status == 0) { throw new Exception(‘Bad status returned. Something went wrong.’); }$idrelay = $res->data[0]->id;
 $postData = array(
 ‘function’ => ‘updateSubscriber’,
 ‘apiKey’ => ‘ ponaquituclaveAPI ‘,
 ‘id’ => $idrelay
 ‘email’ => $res->data[0]->email,
 ‘name’ => $res->data[0]->name,
 ‘groups’ => array( 1 ),
 ‘customFields’ => array(‘f_1’ => $res->data[0]->fields->f_1,‘f_2’ => $fechahoy)
 );$post = http_build_query($postData);curl_setopt($curl, CURLOPT_POST, true);
 curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$json = curl_exec($curl);

$res = json_decode($json);

if ($res->status == 0) { throw new Exception(‘Hubo un fallo durante la ejecución de la petición de datos.’);} ?>

puedes descargar este código aquí

Como en el caso anterior, primero se llama a la función “getSubscribers” para seleccionar el usuario en cuestión y luego se actualizan sus datos con “updateSubscriber”.

Pero hay una diferencia:

‘customFields’ => array(‘f_1’ => $res->data[0]->fields->f_1,‘f_2’ => $fechahoy)

Al campo “personalizado2” le he asignado la fecha actual (y ahora ya no tiene el valor inicial 0000–00–00).

De esta forma, al día siguiente de abandonar su carrito, este usuario recibirá un email recordándole que tiene una compra a medias.

Incluso podría ser interesante que lo incentivaras con algún tipo de descuento o promoción. Pero eso ya te lo dejo a tu elección.

Y hasta aquí todo el proceso para crear y optimizar tus listas de suscripciones de email muy personalizada conforme a tus propias necesidades.

¿A que no era tan difícil? Déjame saber tus dudas al respecto en los comentarios

Originally published on Blog Mailrelay, email marketing

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.