构建一个 n8n 工作流程,通过触发新的 CRM 条目、查询每个公司名称的 Scavio API、从搜索结果中提取结构化数据以及将丰富的字段写回 CRM,利用实时搜索数据丰富公司记录。手动公司研究是销售工作流程中的瓶颈。每个公司的自动丰富流程只需几秒钟即可运行,无需任何人工操作即可显示收入指标、最新新闻、技术堆栈信号和招聘活动。
前置条件
- 正在运行的 n8n 实例(自托管或 n8n 云)
- 来自 scavio.dev 的 Scavio API 密钥
- 包含公司名称的 CRM 或电子表格
- 基本的 n8n 工作流程知识
操作指南
步骤 1: 创建n8n HTTP请求节点
将 Scavio API 调用设置为 n8n 中的 HTTP 请求节点。
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
# This mirrors the n8n HTTP Request node config:
# Method: POST
# URL: https://api.scavio.dev/api/v1/search
# Headers: x-api-key = {{$env.SCAVIO_API_KEY}}
# Body (JSON): {"platform": "google", "query": "{{$json.company_name}} company overview"}
def search_company(company_name: str) -> dict:
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'google', 'query': f'{company_name} company overview'}, timeout=15)
return resp.json()
data = search_company('Stripe')
print(f"Results: {len(data.get('organic_results', []))}")步骤 2: 提取公司信号
解析搜索结果的收入、员工人数、资金和技术堆栈指标。
import re
def extract_signals(company: str, data: dict) -> dict:
results = data.get('organic_results', [])
signals = {
'company': company,
'snippets': [],
'news': [],
'has_careers_page': False,
'linkedin_found': False,
}
for r in results[:8]:
title = r.get('title', '')
snippet = r.get('snippet', '')
link = r.get('link', '')
signals['snippets'].append(snippet[:150])
if 'careers' in link.lower() or 'jobs' in link.lower():
signals['has_careers_page'] = True
if 'linkedin.com/company' in link.lower():
signals['linkedin_found'] = True
if any(word in title.lower() for word in ['raises', 'funding', 'series', 'valuation']):
signals['news'].append(title)
return signals
signals = extract_signals('Stripe', data)
print(f"Careers page: {signals['has_careers_page']}")
print(f"LinkedIn: {signals['linkedin_found']}")
print(f"News: {signals['news'][:2]}")步骤 3: 丰富新闻搜索
进行第二次搜索,重点关注最近的新闻,以捕获融资轮次和公告。
def get_recent_news(company: str) -> list:
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'google', 'query': f'{company} news 2026'}, timeout=15)
results = resp.json().get('organic_results', [])
news = []
for r in results[:5]:
news.append({
'title': r.get('title', ''),
'source': r.get('source', ''),
'snippet': r.get('snippet', '')[:120],
'url': r.get('link', ''),
})
return news
news = get_recent_news('Stripe')
for n in news:
print(f"{n['title'][:60]}")步骤 4: 建立丰富记录
将所有信号合并到一个丰富记录中,准备进行 CRM 更新。
def enrich_company(company: str) -> dict:
search_data = search_company(company)
signals = extract_signals(company, search_data)
news = get_recent_news(company)
return {
'company': company,
'has_careers_page': signals['has_careers_page'],
'linkedin_found': signals['linkedin_found'],
'recent_news': news[:3],
'top_snippets': signals['snippets'][:3],
'funding_signals': signals['news'],
'enriched': True,
}
record = enrich_company('Stripe')
print(json.dumps(record, indent=2)[:500]) if 'json' in dir() else print(record)步骤 5: 批处理公司名单
在所有公司中运行充实并输出摘要。
import json, time
def batch_enrich(companies: list) -> list:
enriched = []
for company in companies:
record = enrich_company(company)
enriched.append(record)
print(f"Enriched: {company} (careers={record['has_careers_page']}, news={len(record['recent_news'])})")
time.sleep(0.5) # Rate limiting
return enriched
companies = ['Stripe', 'Notion', 'Linear']
results = batch_enrich(companies)
with open('enriched_companies.json', 'w') as f:
json.dump(results, f, indent=2)
print(f'\nEnriched {len(results)} companies')Python 示例
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def enrich(company):
data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': f'{company} company overview'}).json()
results = data.get('organic_results', [])[:5]
return {'company': company, 'snippets': [r.get('snippet', '')[:80] for r in results]}
print(enrich('Stripe'))JavaScript 示例
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function enrich(company) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: H,
body: JSON.stringify({platform: 'google', query: `${company} company overview`})
});
const results = (await r.json()).organic_results || [];
return {company, snippets: results.slice(0, 5).map(r => (r.snippet || '').slice(0, 80))};
}
enrich('Stripe').then(console.log);预期输出
An n8n-ready company enrichment pipeline that pulls company signals, news, and metadata from live search data and outputs structured records for CRM updates.