Block 1 - SerpAPI
- Type / Role
- @n8n/n8n-nodes-langchain.toolSerpApi - toolSerpApi
- Config choices
- Version 1
This workflow is provided as-is. Please review and test before using in production.
Promo Seeker automatically finds, verifies, and delivers active promo codes to users via Telegram or email using SerpAPI + Gemini (OpenRouter). Saves hours of manual searching and deduplicates resu...
@n8n/n8n-nodes-langchain.toolserpapi, n8n-nodes-base.stickynote, @n8n/n8n-nodes-langchain.agent, @n8n/n8n-nodes-langchain.lmchatopenrouter, n8n-nodes-base.scheduletrigger, n8n-nodes-base.set, n8n-nodes-base.noop, n8n-nodes-base.telegramtrigger
This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Khairul Muhtadin.
Original n8n.io sourcePromo Seeker automatically finds, verifies, and delivers active promo codes to users via Telegram or email using SerpAPI + Gemini (OpenRouter). Saves hours of manual searching and deduplicates results into an n8n Data Table for fast reuse.
Time Savings: Reduces manual promo hunting from ~2 hours to ~5 minutes per query.
Cost Reduction: Cuts reliance on paid scraping tools or manual services — potential savings of $50–$200/month.
Error Prevention: Cross-references sources and enforces a 30‑day recency filter to reduce expired-code hits by ~60% vs single-source checks.
Scalability: Handles hundreds of queries per day with Data Table upserts and optional scheduling for continuous discovery.
| Requirement | Type | Purpose |
|---|---|---|
| n8n instance | Essential | Execute the workflow — import JSON to your n8n instance |
| SerpAPI account | Essential | Web search results for promo code discovery |
| OpenRouter (Gemini) account | Essential | Language model (Gemini 2.5 Pro) for extraction and verification |
| Telegram Bot (BotFather) | Essential | Receive queries and send promo notifications |
| Gmail OAuth2 | Essential | Send rich email notifications |
| n8n Data Tables | Essential | Store and deduplicate promo code records |
Get your n8n instance here: n8n instance — import the JSON and begin configuration. (Repeat link for convenience) n8n instance
{ "platform":"example.com", "email":"[email protected]" }
| Node | Purpose | Key Configuration |
|---|---|---|
| SerpAPI | Fetch web search results | Provide credential; adjust search params in agent prompt |
| Gemini 2.5Pro (OpenRouter) | Extract & verify promo details | Use OpenRouter credential; model google/gemini-2.5-pro |
| Promo Seeker Agent (LangChain) | Orchestrates search + parsing | System prompt enforces 30‑day recency & result format |
| Structured Output Parser | Validates agent output | JSON schema example for platform/code/value/terms/validUntil |
| Data Table (Get row(s)) | Lookup existing promos | Filters by platform; limit = 3 |
| If (Code Exist?) | Branching logic | Checks existence of platform field |
| Data Table (Upsert row(s)) | Insert or update promo | Mapping from agent output to Data Table columns |
| Telegram Trigger / Telegram | Receive queries & notify users | Webhook-based trigger; parse_mode = HTML for messages |
| Gmail | Send rich HTML emails | Uses Gmail OAuth2 credential |
| Webhook / Form Trigger | Alternate inputs | Webhook path /v1/promo-seeker and Form trigger for manual submissions |
| Metric | Expected Performance | Optimization Tips |
|---|---|---|
| Execution time | 8–30s per new search (depends on SerpAPI + LM response) | Reduce SerpAPI page depth; cache recent results |
| API calls | 3–10 SerpAPI calls per complex query | Batch queries; use higher-quality search params |
| Error handling | Agent retries on malformed output | Use retry nodes and set onError strategy for downstream nodes |
| Problem | Cause | Solution |
|---|---|---|
| No results returned | Query too vague or rate-limited API | Improve query specificity; check SerpAPI quota |
| Gmail send fails | OAuth scope not granted or token expired | Reconnect Gmail OAuth2 credential in n8n |
| Telegram webhook not firing | Incorrect bot token or webhook setup | Recreate Telegram credential and check bot permissions |
| Duplicate rows | Upsert mapping mismatch | Ensure promoCode mapping in Upsert matches structured output |
| Agent returns malformed JSON | LM prompt too permissive | Tighten the agent system prompt and validate with Structured Output Parser |
Created by: khaisa Studio Category: Marketing Automation
Tags: promo-codes, coupons, serpapi, telegram, gmail, openrouter, data-tables
Need custom workflows or help adapting this template? Contact us
This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.
| Workflow | Promo seeker: Auto-find promo codes with SerpAPI, Gemini & Telegram |
|---|---|
| Complexity | advanced |
| Nodes | 19 |
| Categories | AI Chatbot |
| Author | Khairul Muhtadin |
| Published | 02 Oct 2025 |
Use the JSON export at /data/workflows/9172/9172.json as the source template for this automation.
Open n8n, import the downloaded JSON, and review each node before activating the workflow.
Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.
Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.
Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.
Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.
Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.
Promo Seeker automatically finds, verifies, and delivers active promo codes to users via Telegram or email using SerpAPI + Gemini (OpenRouter). Saves hours of manual searching and deduplicates resu...
Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.
Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your AI Chatbot use case.