Importación masiva de posibles clientes
Referencia de extremo de importación masiva de posibles clientes
Use la API en bloque para importar grandes cantidades de registros de posibles clientes de forma asíncrona. Proporcione los registros en un archivo plano delimitado por comas, tabuladores o puntos y comas que tenga menos de 10 MB.
La importación masiva de posibles clientes solo admite la operación de registro “insertar o actualizar”.
Límites de procesamiento
Cada solicitud de importación masiva se agrega como un trabajo a una cola FIFO (primera entrada, primera salida). Se aplican los límites siguientes:
- Se puede procesar simultáneamente un máximo de dos trabajos.
- Se pueden colocar un máximo de 10 trabajos en cola, incluidos los dos trabajos que se están procesando.
Si supera el máximo de 10 trabajos, la API devuelve un error de 1016, Too many imports.
Importar archivo
La primera fila del archivo debe ser un encabezado que enumere los campos de API de REST a los que se asignan los valores de cada fila. Un archivo típico sigue este patrón:
email,firstName,lastName
test@example.com,John,Doe
Use externalCompanyId para vincular un registro de posible cliente a un registro de empresa. Use externalSalesPersonId para vincular un registro de posible cliente a un registro de vendedor.
Envíe la solicitud utilizando el tipo de contenido multipart/form-data. Utilice una implementación de biblioteca existente para construir la solicitud de varias partes.
Creación de un trabajo
Para crear un trabajo de importación masiva, establezca el tipo de contenido en multipart/form-data e incluya estos parámetros:
file: el contenido del archivo de importación.format: el formato de archivo. Los valores válidos soncsv,tsvyssv.
POST /bulk/v1/leads.json?format=csv
Content-Type: multipart/form-data; boundary=------WebKitFormBoundaryBQACkJZyaiIAXogC
Content-Length: 311
Host: <munchkinId>.mktorest.com
------WebKitFormBoundaryBQACkJZyaiIAXogC
Content-Disposition: form-data; name="file"; filename="leads.csv"
Content-Type: text/csv
firstName,lastName,email,company
Able,Baker,ablebaker@marketo.com,Marketo
Charlie,Dog,charliedog@marketo.com,Marketo
Easy,Fox,easyfox@marketo.com,Marketo
------WebKitFormBoundaryBQACkJZyaiIAXogC--
{
"requestId": "d01f#15d672f8560",
"result": [
{
"batchId": 3404,
"importId": "3404",
"status": "Queued"
}
],
"success": true
}
Este extremo usa multipart/form-data como tipo de contenido. Utilice una biblioteca de soporte HTTP para el idioma preferido para construir la solicitud correctamente. El siguiente ejemplo utiliza cURL desde la línea de comandos:
curl -i -F format=csv -F file=@lead_data.csv -F access_token=<Access Token> <REST API Endpoint Base URL>/bulk/v1/leads.json
En este ejemplo, el archivo de importación lead_data.csv contiene los datos siguientes:
firstName,lastName,email,company
Able,Baker,ablebaker@marketo.com,Marketo
Charlie,Dog,charliedog@marketo.com,Marketo
Easy,Fox,easyfox@marketo.com,Marketo
También puede incluir estos parámetros opcionales:
lookupField: selecciona el campo usado para la deduplicación y el valor predeterminado esemail. Especifiqueidpara realizar una operación de “solo actualización”.listId: selecciona una lista estática. Los posibles clientes importados se convierten en miembros de esta lista, además de los registros creados o actualizados por la importación.partitionName: selecciona la partición a la que se va a importar. Consulte la sección Espacios de trabajo y particiones para obtener más información.
Como la API es asincrónica, la respuesta contiene batchId y status campos en lugar de éxitos y errores individuales. El estado puede ser Queued, Importing o Failed.
Conservar batchId para comprobar el estado del trabajo y recuperar errores o advertencias una vez finalizado. batchId sigue siendo válido por siete días.
Estado del trabajo de sondeo
Utilice la API Obtener estado del posible cliente de importación para sondear el trabajo cada 5-30 segundos, según los requisitos de latencia y las limitaciones de llamadas de la API.
GET /bulk/v1/leads/batch/{id}.json
{
"requestId":"8136#146daebc2ed",
"success":true,
"result":[
{
"batchId":1022,
"status":"Complete",
"numOfLeadsProcessed":2,
"numOfRowsFailed":1,
"numOfRowsWithWarning":0,
"message":"Import completed with errors, 2 records imported (2 members), 1 failed"
}
]
}
Esta respuesta muestra una importación completada. El estado puede ser uno de los siguientes valores:
- Completo
- En cola
- Importando
- Error
Cuando se completa el trabajo, la respuesta muestra los números de filas procesadas, fallidas y procesadas con advertencias. El parámetro message también puede proporcionar un mensaje de error cuando el estado es Failed.
Errores de
El atributo numOfRowsFailed de la respuesta Obtener estado del posible cliente de importación indica el número de filas con errores. Un valor mayor que cero significa que se produjeron errores.
Para recuperar los registros con errores y sus causas, solicite el archivo de error:
GET /bulk/v1/leads/batch/{id}/failures.json
La API devuelve un archivo que identifica cada fila fallida y explica por qué falló el registro. El archivo utiliza el formato especificado por el parámetro format durante la creación del trabajo. Un campo adicional en cada registro describe el error.
Advertencias
El atributo numOfRowsWithWarning de la respuesta Obtener estado del posible cliente de importación indica el número de filas con advertencias. Un valor mayor que cero significa que se han producido advertencias.
Para recuperar los registros afectados y sus causas, solicite el archivo de advertencia:
GET /bulk/v1/leads/batch/{id}/warnings.json
La API devuelve un archivo que identifica cada fila con una advertencia y explica por qué se produjo la advertencia. El archivo utiliza el formato especificado por el parámetro format durante la creación del trabajo. Un campo adicional en cada registro describe la advertencia.