ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Solutions
  3. Normaliser les réponses des API d'enrichissement dans les workflows n8n
Solution

Normaliser les réponses des API d'enrichissement dans les workflows n8n

Les workflows n8n qui appellent plusieurs API d'enrichissement (recherche, données d'entreprise, profils sociaux) reçoivent des réponses dans des schémas différents. Une API renvoi

Commencez gratuitementDocumentation API

Le problème

Les workflows n8n qui appellent plusieurs API d'enrichissement (recherche, données d'entreprise, profils sociaux) reçoivent des réponses dans des schémas différents. Une API renvoie les résultats dans un tableau 'data', une autre dans 'results', une autre dans 'items'. Les noms de champs diffèrent : 'title' vs 'name' vs 'headline'. Les types diffèrent : prix en chaîne de caractères vs nombre. Chaque nœud en aval doit gérer toutes les variations de schéma possibles, sinon le workflow échoue silencieusement lorsqu'une API change son format de réponse. Déboguer ces échecs dans un constructeur de workflow visuel est pénible car l'erreur apparaît trois nœuds en aval du problème réel.

La solution Scavio

Construisez un sous-workflow normalisateur dans n8n qui se situe entre chaque appel API d'enrichissement et votre logique en aval. Le normalisateur valide la réponse, mappe les champs spécifiques au vendeur vers votre schéma canonique, gère les champs manquants avec des valeurs par défaut, et transmet un objet uniforme en aval. Le schéma de réponse cohérent de Scavio en fait la source la plus facile à normaliser car la même structure JSON revient quelle que soit la plateforme. Un modèle de normalisateur couvre Google, YouTube, Amazon, Walmart, Reddit et TikTok.

Avant

Avant la normalisation, les workflows n8n échouaient silencieusement lorsque les API d'enrichissement changeaient les formats de réponse. Le débogage nécessitait de tracer les données à travers plusieurs nœuds pour trouver où une disparité de nom de champ provoquait une défaillance en aval.

Après

Après avoir ajouté des sous-workflows normalisateurs, chaque nœud en aval reçoit des schémas identiques. Les changements de format d'API sont détectés au niveau du normalisateur, et leur correction nécessite la mise à jour d'un seul sous-workflow au lieu de chaque nœud qui consomme les données.

À qui cela s'adresse

Les créateurs de workflows n8n qui enchaînent plusieurs API d'enrichissement et sont fatigués de déboguer des décalages de schéma trois nœuds en aval. Toute personne construisant des workflows d'automatisation complexes qui consomment des données provenant de plusieurs sources.

Avantages clés

  • Schéma canonique en aval quel que soit le format de l'API source
  • Les valeurs par défaut des champs manquants évitent les échecs silencieux en aval
  • Un modèle de normalisateur couvre les six plateformes Scavio
  • Les changements de format d'API sont détectés et corrigés en un seul endroit
  • Sous-workflow n8n réutilisable dans plusieurs workflows parents

Exemple Python

Python
import requests

API_KEY = "your_scavio_api_key"

def normalize_scavio_response(raw: dict, platform: str) -> list[dict]:
    """Normalize Scavio response to canonical schema for n8n downstream nodes."""
    normalized = []
    for item in raw.get("organic", []):
        entry = {
            "title": item.get("title", ""),
            "url": item.get("link", ""),
            "description": item.get("snippet", ""),
            "position": item.get("position"),
            "source_platform": platform,
        }
        # Platform-specific enrichment
        if platform in ("amazon", "walmart"):
            entry["price"] = float(item.get("price", 0)) if item.get("price") else None
            entry["rating"] = float(item.get("rating", 0)) if item.get("rating") else None
            entry["reviews"] = int(item.get("reviews", 0)) if item.get("reviews") else 0
        elif platform == "youtube":
            entry["views"] = int(item.get("views", 0)) if item.get("views") else 0
            entry["channel"] = item.get("channel", "")
        elif platform == "reddit":
            entry["score"] = int(item.get("score", 0)) if item.get("score") else 0
            entry["comments"] = int(item.get("comments", 0)) if item.get("comments") else 0
            entry["subreddit"] = item.get("subreddit", "")
        normalized.append(entry)
    return normalized

def search_and_normalize(query: str, platform: str) -> list[dict]:
    res = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": platform, "query": query},
        timeout=15,
    )
    res.raise_for_status()
    return normalize_scavio_response(res.json(), platform)

# Same downstream schema regardless of platform
google_results = search_and_normalize("project management tool", "google")
amazon_results = search_and_normalize("project management book", "amazon")
reddit_results = search_and_normalize("project management tool recommendation", "reddit")

for source in [google_results, amazon_results, reddit_results]:
    if source:
        print(f"Platform: {source[0]['source_platform']} - {len(source)} results")
        print(f"  First: {source[0]['title'][:60]}")

Exemple JavaScript

JavaScript
const API_KEY = "your_scavio_api_key";

function normalizeResponse(raw, platform) {
  return (raw.organic ?? []).map((item) => {
    const entry = {
      title: item.title ?? "",
      url: item.link ?? "",
      description: item.snippet ?? "",
      position: item.position ?? null,
      sourcePlatform: platform,
    };
    if (["amazon", "walmart"].includes(platform)) {
      entry.price = item.price ? Number(item.price) : null;
      entry.rating = item.rating ? Number(item.rating) : null;
      entry.reviews = item.reviews ? Number(item.reviews) : 0;
    } else if (platform === "youtube") {
      entry.views = item.views ? Number(item.views) : 0;
      entry.channel = item.channel ?? "";
    } else if (platform === "reddit") {
      entry.score = item.score ? Number(item.score) : 0;
      entry.comments = item.comments ? Number(item.comments) : 0;
      entry.subreddit = item.subreddit ?? "";
    }
    return entry;
  });
}

async function searchAndNormalize(query, platform) {
  const res = await fetch("https://api.scavio.dev/api/v1/search", {
    method: "POST",
    headers: { "x-api-key": API_KEY, "content-type": "application/json" },
    body: JSON.stringify({ platform, query }),
  });
  if (!res.ok) throw new Error(`scavio ${res.status}`);
  return normalizeResponse(await res.json(), platform);
}

const google = await searchAndNormalize("project management tool", "google");
const amazon = await searchAndNormalize("project management book", "amazon");
console.log(`Google: ${google.length} results, Amazon: ${amazon.length} results`);

Plateformes utilisées

Google

Recherche web avec graphe de connaissances, PAA et aperçus IA

YouTube

Recherche de vidéos avec transcriptions et métadonnées

Amazon

Recherche de produits avec prix, notes et avis

Walmart

Recherche de produits avec données de prix et d'exécution

Reddit

Communauté, publications et commentaires imbriqués de n'importe quel subreddit

TikTok

Découverte de vidéos tendance, créateurs et produits

Questions fréquentes

Les workflows n8n qui appellent plusieurs API d'enrichissement (recherche, données d'entreprise, profils sociaux) reçoivent des réponses dans des schémas différents. Une API renvoie les résultats dans un tableau 'data', une autre dans 'results', une autre dans 'items'. Les noms de champs diffèrent : 'title' vs 'name' vs 'headline'. Les types diffèrent : prix en chaîne de caractères vs nombre. Chaque nœud en aval doit gérer toutes les variations de schéma possibles, sinon le workflow échoue silencieusement lorsqu'une API change son format de réponse. Déboguer ces échecs dans un constructeur de workflow visuel est pénible car l'erreur apparaît trois nœuds en aval du problème réel.

Construisez un sous-workflow normalisateur dans n8n qui se situe entre chaque appel API d'enrichissement et votre logique en aval. Le normalisateur valide la réponse, mappe les champs spécifiques au vendeur vers votre schéma canonique, gère les champs manquants avec des valeurs par défaut, et transmet un objet uniforme en aval. Le schéma de réponse cohérent de Scavio en fait la source la plus facile à normaliser car la même structure JSON revient quelle que soit la plateforme. Un modèle de normalisateur couvre Google, YouTube, Amazon, Walmart, Reddit et TikTok.

Les créateurs de workflows n8n qui enchaînent plusieurs API d'enrichissement et sont fatigués de déboguer des décalages de schéma trois nœuds en aval. Toute personne construisant des workflows d'automatisation complexes qui consomment des données provenant de plusieurs sources.

Oui. L'offre gratuite de Scavio comprend 50 crédits à l'inscription sans carte bancaire. C'est suffisant pour valider cette solution dans votre workflow.

Ressources connexes

Workflow

Workflow de normalisation d'enrichissement n8n

Read more
Glossary

n8n Schema Normalizer

Read more
Best Of

Meilleures API d'enrichissement de leads n8n en 2026

Read more
Use Case

Workflow d'enrichissement de recherche n8n

Read more
Tutorial

Comment construire un normalisateur d'enrichissement de prospects n8n

Read more
Best Of

Meilleure API d'enrichissement avec JSON prévisible en 2026

Read more

Normaliser les réponses des API d'enrichissement dans les workflows n8n

Construisez un sous-workflow normalisateur dans n8n qui se situe entre chaque appel API d'enrichissement et votre logique en aval. Le normalisateur valide la réponse, mappe les cha

Obtenez votre clé APILire la documentation
ScavioScavio

API de recherche en temps réel pour agents IA. Recherchez sur toutes les plateformes, pas seulement Google.

Produit

  • Fonctionnalités
  • Tarifs
  • Tableau de bord
  • Affiliés

Développeurs

  • Documentation
  • Référence API
  • Démarrage rapide
  • Intégration MCP
  • SDK Python

Alternatives

  • Alternative à Tavily
  • Alternative à SerpAPI
  • Alternative à Firecrawl
  • Alternative à Exa

Outils

  • Formateur JSON
  • cURL vers code
  • Compteur de jetons
  • Tous les outils

© 2026 Scavio. Tous droits réservés.

Featured on TAAFT
Conditions d'utilisationPolitique de confidentialité