Les leads entrants de site web arrivent dans HubSpot avec juste un email. Les équipes commerciales veulent LinkedIn, la taille de l'entreprise et les actualités récentes avant que le SDR ne contacte. La plupart des stacks d'enrichissement nécessitent trois fournisseurs et tombent en panne toutes les deux semaines. Ce tutoriel connecte Scavio à n8n pour les SERP, Reddit et LinkedIn via SERP sous un même pool de crédits.
Prérequis
- n8n auto-hébergé ou cloud
- Clé API Scavio dans les identifiants n8n
- Identifiants HubSpot ou Pipedrive
Parcours
Étape 1: Déclencheur webhook
Le nœud webhook n8n accepte la charge utile du formulaire (email + domaine).
// Trigger node config: webhook URL exposed publicly
// Payload shape: { email: string, domain: string }Étape 2: Enrichissement SERP
Le nœud HTTP appelle Scavio avec le filtre site:linkedin.com.
// HTTP node:
// URL: https://api.scavio.dev/api/v1/google
// Body: { "query": "site:linkedin.com/in {{$json.email.split('@')[0]}}" }Étape 3: Signal Reddit
Nœud HTTP pour la vérification de mention d'entreprise sur Reddit.
// HTTP node:
// URL: https://api.scavio.dev/api/v1/reddit/search
// Body: { "query": "{{$json.domain}}" }Étape 4: Fusionner en un seul enregistrement
Le nœud Function combine toutes les données d'enrichissement.
// Function node:
const enriched = {
email: $input.first().json.email,
linkedin: $('Scavio SERP').first().json.organic_results?.[0],
reddit_mentions: $('Scavio Reddit').first().json.posts?.slice(0, 5)
};
return { json: enriched };Étape 5: Écrire dans le CRM
Le nœud HubSpot crée ou met à jour le contact.
// HubSpot node config: operation=create or update
// Properties mapped from $jsonExemple Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
def enrich(email, domain):
serp = requests.post('https://api.scavio.dev/api/v1/google',
headers={'x-api-key': API_KEY},
json={'query': f'site:linkedin.com/in {email.split("@")[0]}'}).json()
rdt = requests.post('https://api.scavio.dev/api/v1/reddit/search',
headers={'x-api-key': API_KEY},
json={'query': domain}).json()
return {'linkedin': serp.get('organic_results',[])[:3], 'reddit': rdt.get('posts',[])[:5]}
print(enrich('[email protected]', 'acme.com'))Exemple JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function enrich(email, domain) {
const namePart = email.split('@')[0];
const [serp, rdt] = await Promise.all([
fetch('https://api.scavio.dev/api/v1/google', { method:'POST', headers:{'x-api-key':API_KEY,'Content-Type':'application/json'}, body: JSON.stringify({ query: `site:linkedin.com/in ${namePart}` }) }).then(r => r.json()),
fetch('https://api.scavio.dev/api/v1/reddit/search', { method:'POST', headers:{'x-api-key':API_KEY,'Content-Type':'application/json'}, body: JSON.stringify({ query: domain }) }).then(r => r.json())
]);
return { serp, rdt };
}Sortie attendue
Each inbound form submission produces an enriched HubSpot contact with LinkedIn URL, recent Reddit mentions of the company, and SERP brand context — all in under 10 seconds.