n8n es una popular herramienta de automatización del flujo de trabajo sin código, pero no incluye un nodo de búsqueda web nativo. Agregar búsqueda requiere exactamente un nodo de solicitud HTTP y cinco minutos de configuración. Este tutorial recorre la configuración paso a paso, muestra cómo analizar los resultados e incluye tres plantillas de flujo de trabajo: investigación de contenido, seguimiento de la competencia y enriquecimiento de clientes potenciales. Costo: $0.005 por búsqueda vía Scavio.
Requisitos previos
- n8n instalado (autohospedado o n8n.cloud)
- Una clave API de Scavio de scavio.dev
- Familiaridad básica con los nodos n8n
Guia paso a paso
Paso 1: Agregue el nodo Solicitud HTTP para búsqueda
Configure un nodo de solicitud HTTP para llamar a la API de búsqueda de Scavio. Este es el único nodo que necesita para la búsqueda 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]}')Paso 2: Analizar resultados de búsqueda en n8n
Agregue un nodo Conjunto o un nodo Función después de la solicitud HTTP para extraer los campos que necesita de la respuesta de búsqueda.
# 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"]}')Paso 3: Tres plantillas de flujo de trabajo listas para usar
Conecte el nodo de búsqueda a diferentes activadores y nodos posteriores para patrones de automatización comunes.
# 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')Ejemplo en 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')Ejemplo en 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)));Salida esperada
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