n8n est un outil d'automatisation de workflows sans code populaire, mais il n'inclut pas de nœud de recherche web natif. Ajouter la recherche nécessite exactement un nœud HTTP Request et cinq minutes de configuration. Ce tutoriel vous guide étape par étape, montre comment analyser les résultats et inclut trois modèles de workflows : recherche de contenu, surveillance de concurrents et enrichissement de leads. Coût : 0,005 $ par recherche via Scavio.
Prérequis
- n8n installé (auto-hébergé ou n8n.cloud)
- Une clé API Scavio depuis scavio.dev
- Connaissance de base des nœuds n8n
Parcours
Étape 1: Ajouter le nœud HTTP Request pour la recherche
Configurez un nœud HTTP Request pour appeler l'API de recherche Scavio. C'est le seul nœud dont vous avez besoin pour la recherche web.
# n8n HTTP Request Node Configuration:
#
# 1. Add an HTTP Request node to your workflow
# 2. Configure it:
# Method: POST
# URL: https://api.scavio.dev/api/v1/search
# Authentication: None
# Send Headers: ON
# Header 1: x-api-key = {{$env.SCAVIO_API_KEY}}
# Header 2: Content-Type = application/json
# Send Body: ON
# Body Content Type: JSON
# Body Parameters:
# query = {{$json.search_query}} (or hardcode a string)
# country_code = us
# num_results = 10
#
# 3. Test it by clicking 'Execute Node'
# Python equivalent for testing:
import requests, os
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': os.environ['SCAVIO_API_KEY'],
'Content-Type': 'application/json'},
json={'query': 'n8n workflow automation 2026',
'country_code': 'us', 'num_results': 5})
results = resp.json().get('organic_results', [])
print(f'{len(results)} results returned')
for r in results:
print(f' {r["title"][:50]}')Étape 2: Analyser les résultats de recherche dans n8n
Ajoutez un nœud Set ou un nœud Function après le HTTP Request pour extraire les champs dont vous avez besoin de la réponse de recherche.
# n8n Function Node to parse results:
# (Place after the HTTP Request node)
#
# const results = $input.first().json.organic_results || [];
# return results.map(r => ({
# json: {
# title: r.title,
# url: r.link,
# snippet: r.snippet || '',
# domain: new URL(r.link).hostname
# }
# }));
# Python equivalent:
def parse_results(api_response: dict) -> list:
results = api_response.get('organic_results', [])
return [{
'title': r['title'],
'url': r['link'],
'snippet': r.get('snippet', ''),
'domain': r['link'].split('/')[2] if '/' in r['link'] else ''
} for r in results]
data = resp.json()
parsed = parse_results(data)
for r in parsed[:3]:
print(f'{r["title"]}: {r["domain"]}')Étape 3: Trois modèles de workflows prêts à l'emploi
Connectez le nœud de recherche à différents déclencheurs et nœuds en aval pour des schémas d'automatisation courants.
# Template 1: Content Research (Cron -> Search -> Google Sheets)
# Trigger: Schedule (daily at 9am)
# Search query: 'latest {your_topic} news 2026'
# Output: Append results to Google Sheets
# Template 2: Competitor Monitor (Cron -> Search -> Slack)
# Trigger: Schedule (every 6 hours)
# Search query: 'site:{competitor.com} new'
# Output: Send new pages to Slack channel
# Template 3: Lead Enrichment (Webhook -> Search -> CRM)
# Trigger: Webhook (receives company name)
# Search query: '{company_name} news funding 2026'
# Output: Update CRM record with enrichment data
import requests, os
SCAVIO_KEY = os.environ['SCAVIO_API_KEY']
def search(query):
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'},
json={'query': query, 'country_code': 'us', 'num_results': 5})
return resp.json().get('organic_results', [])
# Template 1: Daily content research
results = search('AI agent frameworks news 2026')
print(f'Content research: {len(results)} articles found')
# Template 2: Competitor monitoring
results = search('site:competitor.com new features')
print(f'Competitor updates: {len(results)} new pages')
# Template 3: Lead enrichment
results = search('Acme Corp funding news 2026')
print(f'Lead enrichment: {len(results)} results')
print(f'\nTotal cost: 3 searches = $0.015')
print(f'Monthly at 4x/day: $1.80')Exemple Python
import requests, os
SCAVIO_KEY = os.environ['SCAVIO_API_KEY']
def search(query, count=5):
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'},
json={'query': query, 'country_code': 'us', 'num_results': count})
return [{'title': r['title'], 'url': r['link'], 'snippet': r.get('snippet', '')}
for r in resp.json().get('organic_results', [])]
# Same query your n8n HTTP Request node would make
results = search('n8n workflow automation 2026')
for r in results:
print(f'{r["title"]}: {r["url"]}')
print(f'Cost: $0.005')Exemple JavaScript
const SCAVIO_KEY = process.env.SCAVIO_API_KEY;
async function search(query, count = 5) {
const resp = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query, country_code: 'us', num_results: count })
});
return (await resp.json()).organic_results?.map(r => ({
title: r.title, url: r.link, snippet: r.snippet || ''
})) || [];
}
// Same query your n8n node would make
search('n8n workflow automation 2026').then(r => r.forEach(x => console.log(x.title)));Sortie attendue
5 results returned
n8n Workflow Automation Platform - Getting Started
Best n8n Workflows for 2026 - Community Templates
How to Automate Anything with n8n
Content research: 5 articles found
Competitor updates: 3 new pages
Lead enrichment: 5 results
Total cost: 3 searches = $0.015
Monthly at 4x/day: $1.80