Importaciones mediante API

Connectif permite automatizar importaciones masivas de contactos, productos y cupones mediante la API de Importación.

En este artículo aprenderás cómo importar la información de tus contactos, tu catálogo de productos y tus cupones de compras a través de la API de Connectif.

  

Este artículo forma parte de la guía para crear una integración a medida.
Si tu integración es mediante módulo, esta etiqueta será insertada en tu eCommerce de forma automática.

 

Antes de empezar: casos de uso

Esta API cubre los siguientes casos de uso:

  • Si quieres automatizar de forma periódica (diaria, semanal...) la sincronización de todos o gran parte de mis contactos o productos.
  • Si quieres importar cupones a un conjunto de cupones.

Esta API no cubre la importación de los eventos de compras, pero puede servir de punto de partida. Para configurar las compras, revisa la documentación de la API de Connectif.

 

PASO 1. Creación de la clave API

1. Dirígete a tu cuenta de Connectif y ve al apartado API Keys.

API_de_importacio_n_-_1-min.png

 

2. Haz clic en el botón   Crear nueva API Key.

API_de_importacio_n_-_2-min.png

 

3. En la sección Importaciones del panel de creación, habilita los permisos para Leer, Escribir y Borrar de forma masiva.

API_de_importacio_n_-_3-min.png

 

4. Guarda los cambios para registrar la clave API.

5. Copia la clave API para, más tarde, utilizarla en tu script de automatización.

API_de_importacio_n_-_4-min.png

 

PASO 2. Creación de la importación

  

Para crear la importación necesitarás realizar una petición HTTP POST multipart/form-data., que enviará el fichero CSV y los diferentes metadatos (como el delimitador, el tipo de importación, etc.).

6. Crea y verifica que tu fichero CSV de importación cumpla las siguientes condiciones:

  • Encoding UTF-8.
  • La primera fila debe contener el nombre de las cabeceras de cada campo.
  • Las cabeceras del fichero de contactos deben coincidir con los IDs de los Campos del contacto de Connectif, que encontrarás en tu cuenta, en "Contactos > Campos del contacto".

API_de_importacio_n_-_5-min.png

 

En el el siguiente CSV se puede ver ver un ejemplo donde _email, _name y _points corresponden con los identificadores de los campos de sistema Email, Nombre y Puntos.

_email,_name,_points
john@example.org,John,10
micheal@example.org,Michael,10
steve@example.org,Steve,20
mark@example.org,Mark,12
carl@example.org,Carl,10

 

  • Los datos de productos deben coincidir con los nombres de los campos con los mismos que aparecen en este artículo.
  • La importación de cupones debe contener una única cabecera "code".

7. Crea el script e incluye en él la clave API generada en el paso 1.

 

Ejemplo

 

En el siguiente ejemplo se encuentra un básico de script en Node.js para automatizar la importación de contactos.

Una vez creada la importación, tendrá el siguiente aspecto:

const fetch = require('node-fetch');
const fs = require('fs');
const FormData = require('form-data');

const apiKey = process.env.API_KEY;
const filePath = process.env.FILE_PATH;

async function main() {
    const form = new FormData();
    form.append('type', 'contacts')
    form.append('delimiter', ',')
    form.append('overrideExisting', 'true')
    form.append('updateOnlyEmptyFields', 'false')
    form.append('file', fs.createReadStream(filePath));

    const response = await fetch('https://api.connectif.cloud/imports', {
        method: 'POST',
        headers: {
            'Authorization': `apiKey ${apiKey}`,
            ...form.getHeaders()
        },
        body: form
    });

    if (!response.ok) {
        console.error(response.status, await response.json());
        process.exit(1);
    }

    const { id, total } = await response.json();

    while(true) {
        const getResponse = await fetch(`https://api.connectif.cloud/imports/${id}`, {
            method: 'GET',
            headers: {
                'Authorization': `apiKey ${apiKey}`
            }
        });
        const { success, errors, status } = await getResponse.json();
        console.log(`completed ${success + errors} of ${total}`);

        if (status === 'finished') {
            console.log('Success 🎉 🎉 🎉 🎉 🎉 🎉 🎉');
            process.exit(0);
        }
        await new Promise(resolve => setTimeout(resolve, 2000));
    }
}

main().catch(error => {
    console.error(error);
    process.exit(1);
});
  

El script crea una importación a partir de un fichero CSV cuya ruta se establece por variable de entorno. Tras crear la importación, este comprueba su estado cada 2 segundos y termina cuando el estado de la importación es igual a finished

 

 

¡Éxito!
Las integraciones mediante API ya están listas.

 


Preguntas frecuentes

¿Cuál es el tamaño máximo de ficheros a importar?

Los ficheros CSV a importar no pueden superar los 50 MB de tamaño.

 

¿Cuántas importaciones pueden se pueden encolar a la vez?

Es posible encolar un máximo de 10 importaciones a la vez. Llegado a este limite habrá que esperar a que una importación se complete para poner la siguiente a la cola.

 

¿Las importaciones que realizo vía API se pueden consultar desde la aplicación Connectif?

Sí, el motor de importación es el mismo que utiliza la aplicación Connectif. Por lo tanto las importaciones hechas vía API y app están ambas disponibles en el listado de importaciones.

 

¿Puedo borrar una importación encolada o en progreso?

Actualmente, es posible borrar importaciones solo en los estados finished o error.

 


¡Sigue aprendiendo!

Para aprovechar todo el potencial de tu cuenta en Connectif, te recomendamos continuar con los siguientes artículos:

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 0 de 0