Guide · Make.com · Make

Make Docs/Sheets : corriger Invalid requests[0] 400

Réponse courte : Commencez par le message complet, pas seulement par le module rouge :

By Flowpaja · Par Flowpaja · Publié le

Ce guide contient un lien d’affiliation, indiqué « lien d’affiliation ».

Ce guide est aussi disponible en : English · Deutsch · Español · Français

Make Docs/Sheets : corriger Invalid requests[0] 400
Note : Tout dans ce guide fonctionne avec Make.com et les apps connectées. À la fin, nous mentionnons des modèles optionnels et un service de réparation. Sources : Make Google Docs.
The operation failed with an error. [400] Invalid requests[0]...

Le suffixe après requests[0] est la partie utile. Il nomme l'opération, le champ ou l'indice refusé par Google. Le 0 désigne le premier élément du tableau de requêtes Google, pas un numéro de module Make ni un numéro de ligne de feuille.

Réduisez le corps en échec à une requête contre un fichier jetable. Ne réessayez pas le lot de production complet en changeant plusieurs champs simultanément.

1. Identifier lequel des trois endpoints est appelé

Ces chemins se ressemblent, mais acceptent des corps différents :

TravailSuffixe GoogleStructure supérieure
Remplacer du texte ou modifier un Doc/v1/documents/DOCUMENT_ID:batchUpdaterequests avec opérations Docs
Modifier structure, format ou cellules typées de Sheets/v4/spreadsheets/SPREADSHEET_ID:batchUpdaterequests avec opérations Sheets
Écrire des valeurs dans des plages Sheets/v4/spreadsheets/SPREADSHEET_ID/values:batchUpdatevalueInputOption et data

Références officielles : Docs batchUpdate, Sheets batchUpdate, Sheets values.batchUpdate.

Pour des valeurs ordinaires en A2:B2, utilisez values. Pour userEnteredValue typé ou le formatage, utilisez un lot requests de Sheets. Pour du texte de document, utilisez une requête Docs. Ces corps ne sont pas interchangeables.

2. Vérifier l'URL de base du module Make

Pour Docs, utilisez Google Docs › Make an API Call. L'URL est relative à https://docs.googleapis.com/. Saisissez :

/v1/documents/DOCUMENT_ID:batchUpdate

Pour Sheets, utilisez Google Sheets › Make an API Call. L'URL est relative à https://sheets.googleapis.com/v4/. Saisissez l'un des chemins suivants :

/spreadsheets/SPREADSHEET_ID:batchUpdate
/spreadsheets/SPREADSHEET_ID/values:batchUpdate

Réglez Method sur POST et envoyez du JSON avec Content-Type: application/json. La connexion fournit l'autorisation ; ne collez pas un bearer token sans rapport. Bases et connexions sont documentées pour Google Docs et Google Sheets.

Remplacez les identifiants en majuscules par ceux de fichiers de test. Vérifiez l'entrée développée dans l'exécution en échec. Le champ configuré peut sembler correct alors que sa valeur mappée est vide ou désigne un autre fichier.

3. Valider un remplacement littéral dans Docs

Créez un Doc jetable contenant NAME_SLOT. Utilisez ce corps sans réponses de formulaire mappées :

{
  "requests": [
    {
      "replaceAllText": {
        "containsText": {
          "text": "NAME_SLOT",
          "matchCase": true
        },
        "replaceText": "Jamie Quinn"
      }
    }
  ]
}

Relisez le document enregistré. Le nom fictif doit remplacer le marqueur. NAME_SLOT est volontairement du texte simple : l'exemple ne dépend pas de l'interprétation de {{...}} comme syntaxe de modèle Make.

Remplacez le nom littéral par une réponse mappée seulement lorsque cette requête fonctionne. Si la version littérale fonctionne et l'autre échoue, comparez les corps JSON finaux. Un guillemet ou un retour à la ligne peut casser du JSON assemblé manuellement.

Utilisez JSON › Create JSON avec une structure correspondant au corps ; voir Make JSON. Une syntaxe JSON valide ne prouve pas que les champs d'opération Google sont valides.

4. Valider séparément une écriture de valeurs Sheets

Créez un spreadsheet de test avec un onglet Intake. Utilisez /values:batchUpdate et ce corps :

{
  "valueInputOption": "RAW",
  "data": [
    {
      "range": "'Intake'!A2:B2",
      "values": [["Jamie Quinn", 1234.56]]
    }
  ]
}

Le nom est une chaîne JSON et le montant un nombre JSON. La plage utilise le titre de l'onglet. Gardez data comme tableau et values comme tableau de lignes. N'enveloppez pas ce corps dans requests et n'y placez pas de replaceAllText Docs.

Inspectez A2 et B2 après l'appel. Une réponse réussie contre le mauvais spreadsheet reste un test échoué pour votre scénario.

5. Vérifier les cellules typées et masques de champs

Pour Sheets updateCells, utilisez l'endpoint structurel batchUpdate. Cet exemple écrit deux cellules à partir de A2 :

{
  "requests": [
    {
      "updateCells": {
        "start": {
          "sheetId": 12345,
          "rowIndex": 1,
          "columnIndex": 0
        },
        "rows": [
          {
            "values": [
              {"userEnteredValue": {"stringValue": "Jamie Quinn"}},
              {"userEnteredValue": {"numberValue": 1234.56}}
            ]
          }
        ],
        "fields": "userEnteredValue"
      }
    }
  ]
}

12345 est un identifiant d'onglet illustratif. Remplacez-le par le vrai sheetId numérique. L'identifiant du fichier spreadsheet est différent.

La référence des requêtes Sheets décrit start ou range et un masque relatif à CellData. La référence des types définit numberValue numérique et les indices depuis zéro. A2 correspond à ligne 1 et colonne 0.

Gardez le test limité. Une grande range avec trop peu de données peut effacer les champs masqués dans le reste de la zone. N'utilisez pas fields: "*" pour cacher une incertitude sur les champs à modifier.

Erreurs courantes et corrections

Le champ appartient à l'autre API

Une opération Docs ne fonctionne pas dans un lot requests Sheets. Comparez le nom refusé à la référence de l'endpoint réellement appelé. Reconstruisez le plus petit corps valide pour cet endpoint.

numberValue contient du texte formaté

"numberValue": "€1.234,56" est une chaîne, pas un nombre JSON. Parsez le montant selon un format déclaré avant sérialisation. Envoyez 1234.56 comme nombre seulement si c'est la valeur voulue et gardez la devise séparément. Voir Invalid number dans les réponses de formulaire.

L'identifiant d'onglet est incorrect

Lisez les métadonnées du spreadsheet et associez le titre au sheetId numérique. La position visuelle d'un onglet n'est pas son identifiant. S'il a été recréé, actualisez les métadonnées plutôt que réutiliser l'ancienne valeur.

Un indice sort du document actuel

Pour les opérations indexées, récupérez d'abord la structure actuelle. Validez replaceAllText pour un marqueur simple avant d'ajouter des éditions par indice.

Le document comporte plusieurs onglets

Le guide des onglets Docs précise que replaceAllText peut toucher tous les onglets sans critères de tabs. Limitez le remplacement si le même marqueur figure ailleurs.

La révision requise est périmée

Si vous envoyez writeControl.requiredRevisionId, comparez-le à la révision actuelle. Docs peut rejeter une révision obligatoire ancienne. Relisez le document ; retirer la protection de concurrence sans inspection n'est pas une réparation.

Retry échoue encore

Répéter une entrée mal formée ne corrige pas son schéma. Conservez l'entrée, réparez une cause et testez un fichier jetable. Ne sautez pas l'écriture pour considérer ensuite le document comme mis à jour.

Crédits et effets d'un lot en échec

Un module ordinaire d'appel API exécuté donne une estimation d'un crédit. Une lecture puis une écriture donnent deux. Plusieurs sous-requêtes dans un appel restent une exécution de module Make. Vérifiez l'historique ; voir Make Credits.

Les lots requests de Docs et Sheets valident avant application. Un élément invalide bloque les changements de ce lot. Cela n'annule pas un document créé ou une ligne ajoutée par un module Make antérieur. Inspectez ces résultats avant de relancer tout le scénario.

Tests

  1. Conservez le suffixe complet et l'entrée développée de l'erreur.
  2. Confirmez API, chemin, méthode et identifiant du fichier.
  3. Envoyez une requête littérale à un fichier de test.
  4. Relisez la cible et vérifiez exactement texte ou cellules modifiés.
  5. Remplacez un littéral par une réponse mappée et comparez le corps.
  6. Testez ponctuation et format numérique déclaré.
  7. Ajoutez les autres requêtes une à une et contrôlez chaque changement.

Arrêtez-vous à la première nouvelle requête qui échoue. Ne réordonnez pas le lot simplement pour déplacer l'indice signalé.

Utiliser une collecte plus simple si elle convient

Pour recueillir des prospects de formulaire dans Sheets et avertir Slack, commencez par le modèle gratuit Lead Capture → Sheets + Slack. C'est un flux de collecte distinct, pas un correctif pour un corps batchUpdate arbitraire.

Pas encore de compte ? Créer un compte Make gratuit: affiliate link. Flowpaja peut recevoir une commission sans frais supplémentaires pour vous.

FAQ

Que signifie Invalid requests[0] ?
C'est la première requête du tableau indexé depuis zéro. La suite explique le champ ou l'opération invalides. Gardez indice et suffixe.
Docs et Sheets peuvent-ils partager un corps batchUpdate ?
Non. Requêtes Docs, structure Sheets et écritures de valeurs suivent des schémas différents. Choisissez l'endpoint d'abord.
sheetId est-il l'identifiant du spreadsheet ?
Non. L'identifiant du spreadsheet désigne le fichier. Le sheetId numérique désigne un onglet à l'intérieur.
Un lot invalide est-il partiellement appliqué ?
Les endpoints requests de Docs et Sheets rejettent le lot invalide avant application. Les modules antérieurs réussis restent des actions distinctes avec une récupération séparée.

Toujours bloqué ?

Envoie le blueprint exporté et le texte d’erreur à notre service de réparation Make sur Fiverr. Aucun identifiant demandé.

Stuck on an error in your own Make scenario? Make scenario fix / debugging on Fiverr, from $25: send the exported blueprint and a description of the error, no logins needed.

← All guides · All templates

Make, Meta, Facebook, Google, Google Sheets, Slack, Fillout, Typeform, Tally, HubSpot et Webflow sont des marques de leurs propriétaires. Flowpaja est indépendante et non affiliée.