Importation de leads en bloc

Référence de point d’entrée d’importation de leads en bloc

Utilisez l’API en bloc pour importer de manière asynchrone un grand nombre d’enregistrements de prospect. Fournissez les enregistrements dans un fichier plat délimité par des virgules, des tabulations ou des points-virgules d’une taille inférieure à 10 Mo.

L’importation de leads en bloc prend uniquement en charge l’opération d’enregistrement « insérer ou mettre à jour ».

Limites de traitement

Chaque demande d’importation en bloc est ajoutée sous la forme d’une tâche à une file d’attente Premier entré, Premier sorti (FIFO). Les limites suivantes s’appliquent :

  • Deux traitements au maximum peuvent être traités simultanément.
  • 10 tâches au maximum peuvent se trouver dans la file d’attente, y compris les deux tâches en cours de traitement.

Si vous dépassez la limite de 10 tâches, l’API renvoie une erreur 1016, Too many imports.

Importer fichier

La première ligne du fichier doit être un en-tête qui répertorie les champs API REST auxquels les valeurs de chaque ligne correspondent. Un fichier type suit ce modèle :

email,firstName,lastName
test@example.com,John,Doe

Utilisez externalCompanyId pour lier un enregistrement de prospect à un enregistrement d’entreprise. Utilisez externalSalesPersonId pour lier un enregistrement de prospect à un enregistrement de vendeur.

Envoyez la requête à l’aide du type de contenu multipart/form-data. Utilisez une implémentation de bibliothèque existante pour construire la requête multipartie.

Création d’un traitement

Pour créer une tâche d’importation en bloc, définissez le type de contenu sur multipart/form-data et incluez les paramètres suivants :

  • file : contenu du fichier d’importation.
  • format : format du fichier. Les valeurs valides sont csv, tsv et ssv.
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
}

Ce point d’entrée utilise multipart/form-data comme type de contenu. Utilisez une bibliothèque de prise en charge HTTP pour la langue de votre choix afin de créer correctement la requête. L’exemple suivant utilise cURL à partir de la ligne de commande :

curl -i -F format=csv -F file=@lead_data.csv -F access_token=<Access Token> <REST API Endpoint Base URL>/bulk/v1/leads.json

Dans cet exemple, le fichier d’import lead_data.csv contient les données suivantes :

firstName,lastName,email,company
Able,Baker,ablebaker@marketo.com,Marketo
Charlie,Dog,charliedog@marketo.com,Marketo
Easy,Fox,easyfox@marketo.com,Marketo

Vous pouvez également inclure les paramètres facultatifs suivants :

  • lookupField : sélectionne le champ utilisé pour la déduplication et utilise la valeur par défaut email. Spécifiez id effectuer une opération « mise à jour uniquement ».
  • listId : sélectionne une liste statique. Les prospects importés deviennent membres de cette liste en plus des enregistrements créés ou mis à jour par l’importation.
  • partitionName : sélectionne la partition vers laquelle effectuer l’importation. Voir la section Espaces de travail et partitions pour plus d’informations.

L’API étant asynchrone, la réponse contient des champs batchId et status au lieu de succès et d’échecs individuels. Le statut peut être Queued, Importing ou Failed.

Conservez la batchId pour vérifier le statut de la tâche et récupérer les échecs ou les avertissements une fois l’opération terminée. Le batchId reste valable sept jours.

Interroger le statut de la tâche

Utilisez l’API Get Import Lead Status pour interroger la tâche toutes les 5 à 30 secondes, en fonction des exigences de latence et des limitations des appels 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"
      }
   ]
}

Cette réponse affiche un import terminé. Le statut peut être l’une des valeurs suivantes :

  • Terminée
  • En fil d’attente
  • Importation
  • Échec

Une fois la tâche terminée, la réponse répertorie le nombre de lignes traitées, ayant échoué et traitées avec des avertissements. Le paramètre message peut également fournir un message d’échec lorsque le statut est Failed.

Échecs

L’attribut numOfRowsFailed dans la réponse Get Import Lead Status indique le nombre de lignes ayant échoué. Une valeur supérieure à zéro signifie que des échecs se sont produits.

Pour récupérer les enregistrements ayant échoué et leurs causes, demandez le fichier d’échec :

GET /bulk/v1/leads/batch/{id}/failures.json

L’API renvoie un fichier qui identifie chaque ligne en échec et explique pourquoi l’enregistrement a échoué. Le fichier utilise le format spécifié par le paramètre format lors de la création de la tâche. Un champ supplémentaire sur chaque enregistrement décrit l’échec.

Avertissements

L’attribut numOfRowsWithWarning dans la réponse Get Import Lead Status indique le nombre de lignes avec des avertissements. Une valeur supérieure à zéro signifie que des avertissements se sont produits.

Pour récupérer les enregistrements concernés et leurs causes, demandez le fichier d’avertissement :

GET /bulk/v1/leads/batch/{id}/warnings.json

L’API renvoie un fichier qui identifie chaque ligne avec un avertissement et explique pourquoi l’avertissement s’est produit. Le fichier utilise le format spécifié par le paramètre format lors de la création de la tâche. Un champ supplémentaire sur chaque enregistrement décrit l’avertissement.

recommendation-more-help
marketo-developer-help