Requisitos previos
Para sacar provecho de este tutorial, necesitarás:
- Conocimiento básico del formato JSON
- Conocimiento de las opciones del archivo de configuración
- Conocimiento básico de bases de datos y términos relacionados: registro, actualización, etc.
Caso de uso 1
Este caso describe el archivo de configuración para el universo “myuniverse_crm”.
Sandra Bellan es director de CRM de su empresa, que la hace responsable de crear y mantener el archivo de configuración para las importaciones.
Tabla: Contactos
Sandra define dos subsecuencias para este contexto, PRCL y MGTSB:
- La subsecuencia PRCL permite tanto crear como actualizar contactos existentes ("create contacts”: “1”, “update contacts”: “1”). Además, la lista 0 siempre se vaciará antes de esta importación (“init lists”: [0]) – lo que llamamos sincronización “full mode”. De esta forma, si todos los contactos importados están suscritos a esta lista, siempre estarás impactando los registros de la carga más reciente.
- El objetivo de la subsecuencia MGTSB es suscribir los contactos a la lista 1. La lista es eliminada antes de cada importación (“init lists”: 1]), y se impide la creación de nuevos contactos (“create contacts”: “0”).
Debido a la suposición de que todos los contactos son de España, Sandra quiere aplicar el código de país a todos los números de teléfono que no lo contienen (“default cellphone prefix”: “34”).
Tabla: Productos
Aquí , las subsecuencias se utilizan para distintos propósitos.
- La subsecuencia ERP se utiliza para actualizar productos existentes en la base de datos. Se utilizará siempre que una descripción o precio de producto necesite cambiarse. Puede que los productos nuevos no se añadan a esta importación (“create products”: “0”, “update products”: “1”).
- Por otro lado, tanto MGTEN como MGTFR sirven para añadir nuevos productos. Cuando una opción no está presente, Splio asume su valor por defecto (“create products”: “1”, “update products”: “1”).
Retoques finales
Las tablas restantes, Recibos y Líneas de recibos no presentan ninguna restricción.
Antes de enviar el archivo, Josh debe asegurarse de que ha añadido las direcciones de email para recibir el informe de importación (“report recipients”: [“myemail@mycompany.com”]) y alertas (“alert recipients”: [“myemail@mycompany.com”]).
También tiene que configurar la opción “overwrite with empty values”: “0”. Esto es importante siempre que importes contactos u otros datos que ya existen en la base de datos. Con esta opción configurada en 0, Sandra se asegura de que el valor del campo en la base se conserve, aunque el campo en el archivo esté vacío.
Habiendo revisado todo de nuevo, Sandra importa el archivo al FTP de Splio.
Archivo JSON
Puedes ver el archivo JSON completo enviado a Splio a continuación.
"myuniverse_crm":{
"contacts":{
"PRCL":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0",
"default cellphone prefix": "33",
"create contacts": "1",
"update contacts": "1",
"init lists": [0]
},
"MGTSB":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0",
"default cellphone prefix": "33",
"create contacts": "0",
"update contacts": "1",
"init lists": [1]
}
},
"orders":{
"ERP":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0"
}
},
"ordersitems":{
"ERP":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0"
}
},
"products":{
"ERP":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0",
"create products": "0",
"update products": "1"
},
"MGTEN":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0"
},
"MGTFR":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0"
}
}
}
}
Caso de uso 2
El caso 2 presenta un archivo de configuración ligeramente diferente al caso 1. Le Da prioridad al archivo importado (“overwrite with empty values”: “1”): quiere decir que, si actualizas un registro, todos los datos se sobrescribirán, incluso si el campo del archivo importado está vacío.
Conoce a Oscar Marin, director adjunto de marketing, encargado de preparar el archivo de configuración. Él va a utilizar las mismas direcciones de email para informes y alertas para todas las tablas y subsecuencias.
Tabla: Contactos
Para esta tabla, Oscar va a definir dos subsecuencias:
- La subsecuencia “full” está destinada para importar la colección completa de contactos desde una fuente externa. Por esta razón, Oscar configura que se creen cuentas (“create contacts”: “1”) y que se actualicen (“update contacts”: “1”). El comando que permite la sustitución de valores con NULL (“overwrite with empty values”: “1”) será útil en este caso: si se eliminó información de la fuente, también se eliminará de la base de contactos de Splio. Oscar también se asegura de vaciar la lista 0 antes de la carga (“init lists”: [0]), para que luego se rellene con los datos importados.
- La subsecuencia “incremental” está definida de la misma forma que la subsecuencia “full” con solo una diferencia significativa: la lista 0 no se vacía. Esto quiere decir que esta importación podrá añadir y quitar miembros de la lista usando los valores del campo “subscription” o dejarla sin variaciones.
Ambas subsecuencias también asumen que los números de teléfono importados son de España (“default cellphone prefix”: “34”), ordenando a Splio utilizar este prefijo para todos los números que no lo tienen.
Tablas: Recibos, Líneas de recibos y Productos
Las demás tablas no presentan ninguna restricción especial. Oscar deja las opciones para poder crear y actualizar registros de productos como estaban en la versión anterior del archivo (“create products”: “1”, “update products”: “1”). Aunque estos son valores por defecto y podrían eliminarse, los deja como un recordatorio de que este comportamiento durante la importación es importante.
Archivo JSON
Puedes ver el archivo JSON completo a continuación.
{
"mybrand2":{
"contacts":{
"full":{
"report recipients": ["tech@mybrand2.com , myemail@company.com"],
"alert recipients": ["tech@mybrand2.com , myemail@company.com"],
"overwrite with empty values": "1",
"default cellphone prefix": "33",
"create contacts": "1",
"update contacts": "1",
"init lists": [0]
},
"incremental":{
"report recipients": ["tech@mybrand2.com , myemail@company.com"],
"alert recipients": ["tech@mybrand2.com , myemail@company.com"],
"overwrite with empty values": "1",
"default cellphone prefix": "33",
"create contacts": "1",
"update contacts": "1"
}
},
"orders":{
"default":{
"report recipients": ["tech@mybrand2.com , myemail@company.com"],
"alert recipients": ["tech@mybrand2.com , myemail@company.com"],
"overwrite with empty values": "1"
}
},
"ordersitems":{
"default":{
"report recipients": ["tech@mybrand2.com , myemail@company.com"],
"alert recipients": ["tech@mybrand2.com , myemail@company.com"],
"overwrite with empty values": "1"
}
},
"products":{
"default":{
"report recipients": ["tech@mybrand2.com , myemail@company.com"],
"alert recipients": ["tech@mybrand2.com , myemail@company.com"],
"overwrite with empty values": "1",
"create products": "1",
"update products": "1"
}
}
}
}