An r/AiAutomations thread showed users struggling with AI agent nodes in n8n. The simpler approach: use a plain HTTP request to Groq for summarization instead of an AI agent node. Groq Llama 70B costs $0.59/$0.79 per 1M tokens. This tutorial uses HTTP-only nodes for both data collection and summarization.
Prerequisites
- Scavio API key
- Groq API key (free tier available)
- Python 3.8+ or n8n
Walkthrough
Step 1: Collect competitor SERP data via Scavio
Search for competitors across Google and Reddit.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def collect_competitor_data(competitor):
google = requests.post('https://api.scavio.dev/api/v1/search',
headers=H, json={'platform': 'google', 'query': f'{competitor} news 2026'}).json()
reddit = requests.post('https://api.scavio.dev/api/v1/search',
headers=H, json={'platform': 'reddit', 'query': competitor}).json()
return {'google': google.get('organic_results', [])[:5],
'reddit': reddit.get('results', [])[:5]}Step 2: Summarize with Groq HTTP request
Call Groq REST API directly -- no SDK, no agent node. Llama 70B at $0.59/1M input tokens.
def summarize_with_groq(competitor, data):
resp = requests.post('https://api.groq.com/openai/v1/chat/completions',
headers={'Authorization': f'Bearer {os.environ["GROQ_API_KEY"]}',
'Content-Type': 'application/json'},
json={'model': 'llama-3.3-70b-versatile', 'max_tokens': 500,
'messages': [{'role': 'user',
'content': f'Summarize this competitor intelligence for {competitor}. '
f'Focus on: new features, pricing changes, user sentiment.\n{data}'}]
}).json()
return resp['choices'][0]['message']['content']Step 3: Format the daily report
Combine summaries into a single report.
def daily_report(competitors):
report = f'# Competitor Report - {datetime.date.today()}\n\n'
for c in competitors:
data = collect_competitor_data(c)
summary = summarize_with_groq(c, data)
report += f'## {c}\n{summary}\n\n'
return reportStep 4: Send via email or Slack
Deliver the report to your team.
import smtplib
from email.mime.text import MIMEText
def send_report(report, to_email):
msg = MIMEText(report)
msg['Subject'] = f'Daily Competitor Report - {datetime.date.today()}'
msg['From'] = 'reports@yourcompany.com'
msg['To'] = to_email
with smtplib.SMTP('smtp.gmail.com', 587) as s:
s.starttls()
s.login(os.environ['SMTP_USER'], os.environ['SMTP_PASS'])
s.send_message(msg)Python Example
# Cost per daily report (3 competitors):
# Scavio: 3 competitors x 2 platforms = 6 queries x $0.005 = $0.03
# Groq: 3 summaries x ~1K tokens = ~$0.002
# Total: ~$0.032/day = ~$1/month for daily competitor reportsJavaScript Example
const scavioRes = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
body: JSON.stringify({platform: 'google', query: `${competitor} news 2026`})
});
const groqRes = await fetch('https://api.groq.com/openai/v1/chat/completions', {
method: 'POST',
headers: {'Authorization': `Bearer ${process.env.GROQ_API_KEY}`, 'Content-Type': 'application/json'},
body: JSON.stringify({model: 'llama-3.3-70b-versatile', max_tokens: 500,
messages: [{role: 'user', content: `Summarize: ${JSON.stringify(data)}`}]})
});Expected Output
Daily competitor intelligence report delivered via email. Uses Groq HTTP request directly (no agent node), Scavio for data. Total cost under $1/month.