Integración con GetResponse

Integración con GetResponse

GetResponse es una plataforma para acciones de marketing con la que hemos estado trabajando últimamente. Nos ha parecido interesante y cumple bastante bien sus funcionalidades, entre las que están el diseño de formularios y newsletters para email marketing y la creación de landing pages sin necesidad de saber programar.

Un pilar fundamental de esta herramienta son los datos de contactos para la difusión de las campañas. Probablemente en tu empresa recibas leads de clientes a través de diferentes canales o plataformas y quieras incorporarlos a la estrategia de marketing que vayas a realizar con GetResponse, así que nos parece interesante explicar cómo realizar una integración automatizada de esos datos mediante el API de GetResponse.

Por lo tanto, en este post, vamos a explicar como ejemplo cómo se añaden contactos a GetResponse usando la API que ofrece. Los ejemplos están hechos en PHP porque lo que vamos a querer es, más adelante, integrarlo con una página web hecha en WordPress. Esto último lo explicaremos en otro post.

Aunque la integración es bastante sencilla hay algunos problemas que nos hemos encontrado y que os explicamos.

Conseguir nuestra API key

Lo primero es conseguir la API key de nuestra cuenta de GetResponse. Se encuentra en  Mi cuenta->Datos de cuenta->API &OAuth. Si vamos a hacer varias integraciones deberíamos generar una clave para cada plataforma.

Comenzar a construir la request

GetResponse proporciona una API REST sobre HTTPS.
El endpoint es https://api.getresponse.com/v3 en casos generales y, si eres un usuario 360,  https://api3.getresponse360.pl/v3https://api3.getresponse360.com/v3.

La cabecera de la request debe indicar el tipo del contenido, el API key y el dominio en caso de que tengamos el nuestro propio. GetResponse sólo devuelve y acepta objetos JSON así nuestra request tendrá el siguiente aspecto:

1
2
3
4
5
6
7
8
9
$curl_add_contact = curl_init("https://api3.getresponse360.com/v3/contacts");
 
$header = array();
$header[] = 'Content-type: application/json';
$header[] = 'X-Auth-Token: api-key ' . "my_api_key";
$header[] = 'X-DOMAIN: ' . "mydomain.com";
 
curl_setopt($curl_add_contact, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl_add_contact, CURLOPT_CUSTOMREQUEST, "POST");

Preparar los datos

Los parámetros que podemos enviar son los mostrados en el siguiente objeto JSON, donde sólo son obligatorios el correo electrónico (email) y la campaña (campaign).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
    "name": "Jan Kowalski",
    "note": "test",
    "dayOfCycle": "10",
    "campaign": {
        "campaignId": "pv2e"
    },
    "tags": [
        {
            "tagId": "Xw"
        },
        {
            "tagId": "Nn"
        }
    ],
    "customFieldValues": [
        {
            "customFieldId": "n",
            "value": [
                "white"
            ]
        }
    ]
}

Aquí comienzan los problemas: ¿cuál es el identificador de mi campaña? ¿y el de cada campo personalizado que he creado en GetResponse?

En ningún de los dos casos es demasiado intuitivo así que empezamos buscando el identificador de la campaña haciendo click en el menú superior en el Panel de control, después en el seleccionable donde pone Tu campaña actual y elegimos Lista de campañas. Aquí viene la sorpresa: el identificador de la campaña es el valor de la variable TOKEN, no ID.

En el caso de los campos personalizados no hay manera, al menos en el momento en el que se escribió este post, de obtener sus identificadores desde el panel de administración de GetResponse así que una forma de conseguirlos es haciendo una petición GET de todos los campos personalizados de nuestra cuenta (https://api.getresponse.com/v3/custom-fields). GetResponse nos devolverá un JSON con la siguiente estructura donde el identificador del campo personalizado será customFieldId:

1
2
3
4
5
6
7
8
9
10
11
12
[
    {
        "customFieldId": "Vit",
        "href": "http://api.getresponse.com/v3/custom-fields/Vit",
        "name": "ref",
        "fieldType": "multi_select",
        "valueType": "string",
        "type": "text",
        "hidden": "false",
        "values": []
    }
]

Ahora que ya tenemos todos los identificadores necesarios ya podemos construir nuestro objeto JSON para enviar en la request.

Enviar la request

Más abajo tenemos nuestra request donde la variable $data es el objeto JSON que contiene los campos personalizados. La response devolverá el código 202 si todo va bien ya que añadir un contacto no es una tarea instantánea y devolverá una serie de errores que podéis consultar en este link en caso contrario.

1
2
3
4
5
6
7
8
9
10
11
12
13
$curl_add_contact = curl_init("https://api3.getresponse360.com/v3/contacts");
 
$header = array();
$header[] = 'Content-type: application/json';
$header[] = 'X-Auth-Token: api-key ' . "my_api_key";
$header[] = 'X-DOMAIN: ' . "mydomain.com";
 
curl_setopt($curl_add_contact, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl_add_contact, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl_add_contact, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl_add_contact, CURLOPT_RETURNTRANSFER, true); 
 
$response_add_contact = curl_exec($curl_add_contact);

Esperamos que este ejemplo de cómo se hace una petición a la API de GetResponse os haya sido de utilidad. Si tenéis dudas o queréis hacer una integración de este tipo no dudéis en poneros en contacto con nosotros.

Publicado en junio 27, 2017

,

,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

« »