by ToolMonsters
How it works A schedule trigger periodically fetches the list of URLs to monitor from your CRM (Airtable by default) Bright Data Web Unlocker scrapes each page (handles JS, CAPTCHAs, geo-blocks) Claude Sonnet 4.6 compares the new HTML against the previous snapshot and ignores noise (timestamps, build IDs, CSS) The new snapshot and AI summary are saved back to the CRM If a real, visible change is detected, Slack notifies your team Set up steps Setup time: ~10 minutes Connect your CRM, Bright Data, Anthropic and Slack credentials Set the Schedule Trigger interval (hourly, daily…) Add the URLs you want to monitor with Active = TRUE Activate the workflow See the sticky notes inside the workflow for details on how to swap Airtable, Claude or Slack for your preferred tools.
by Oneclick AI Squad
This automated n8n workflow enables AI-powered responses across multiple social media platforms, including Instagram DMs, Facebook messages, and WhatsApp chats using Meta's APIs. The system provides intelligent customer support, lead generation, and smart engagement at scale through AI-driven conversation management and automated response routing. Good to Know Supports multi-platform messaging across Instagram, Facebook, and WhatsApp Uses AI Travel Agent and Ollama Chat Model for intelligent response generation Includes platform memory for maintaining conversation context and history Automatic message processing and routing based on platform and content type Real-time webhook integration for instant message detection and response How It Works WhatsApp Trigger** - Monitors incoming WhatsApp messages and initiates automated response workflow Instagram Webhook** - Captures Instagram DM notifications and processes them for AI analysis Facebook Webhook** - Detects Facebook Messenger interactions and routes them through the system Message Processor** - Analyzes incoming messages from all platforms and prepares them for AI processing AI Travel Agent** - Processes messages using intelligent AI model to generate contextually appropriate responses Ollama Chat Model** - Provides advanced language processing for complex conversation scenarios Platform Memory** - Maintains conversation history and context across multiple interactions for personalized responses Response Router** - Determines optimal response strategy and routes messages to appropriate sending mechanisms Instagram Sender** - Delivers AI-generated responses back to Instagram DM conversations Facebook Sender** - Sends automated replies through Facebook Messenger API Send Message (WhatsApp)** - Delivers personalized responses to WhatsApp chat conversations How to Use Import workflow into n8n Configure Meta's Instagram Graph API, Facebook Messenger API, and WhatsApp Business Cloud API Set up approved Meta Developer App with required permissions Configure webhook endpoints for real-time message detection Set up Ollama Chat Model for AI response generation Test with sample messages across all three platforms Monitor response accuracy and adjust AI parameters as needed Requirements Access to Meta's Instagram Graph API, Facebook Messenger API, and WhatsApp Business Cloud API Approved Meta Developer App Webhook setup and persistent token management for real-time messaging Ollama Chat Model integration AI Travel Agent configuration Customizing This Workflow Modify AI prompts for different business contexts (customer service, sales, support) Adjust response routing logic based on message content or user behavior Configure platform-specific message templates and formatting Set up custom memory storage for enhanced conversation tracking Integrate additional AI models for specialized response scenarios Add message filtering and content moderation capabilities
by Oneclick AI Squad
This workflow deploys multiple independent AI research agents that work in parallel, critique each other's findings, and synthesize a unified high-quality final report. Who's it for • Researchers needing comprehensive topic coverage • Teams conducting competitive analysis or due diligence • Analysts synthesizing multi-perspective reports • Anyone needing validated, cross-checked AI research How it works / What it does Accepts a research topic via webhook or manual trigger Splits the topic into 3 parallel sub-tasks for specialized agents Agent A: Factual / data-driven research Agent B: Trend & future outlook research Agent C: Critical / risk & counterargument research Critique phase: each agent reviews the others' findings Synthesis agent merges all validated findings Final report formatted and delivered via webhook response + Google Sheet log How to set up Import this workflow Set up credentials (OpenAI, Google Sheets) Replace YOUR_SHEET_ID in the tracker node Activate workflow and POST to the webhook URL Requirements • OpenAI API key (or swap model node for Anthropic/Grok) • Google Sheets (for logging) • n8n instance (cloud or self-hosted) How to customize the workflow • Change agent personas in each AI node prompt • Add more parallel agents by duplicating agent branches • Swap OpenAI model for Claude via Anthropic credentials • Adjust synthesis depth in the final AI node Need a powerful, customized workflow to improve efficiency? Our team can create it for you in no time—Get in touch with our team
by iamvaar
Quick Overview This workflow captures invoice images/documents from WhatsApp, extracts structured invoice data with Google Gemini, and syncs the result to HubSpot by creating vendor-payment tasks or closing matching deals, while sending confirmations back on WhatsApp and raising exceptions to Slack. How it works Triggers when a new WhatsApp message is received. Checks that the message contains an image or document, then fetches the media URL and downloads the attachment. Converts the downloaded file to base64 and sends it to the Google Gemini API to extract structured invoice details as JSON. Validates that the attachment is an invoice and routes it based on the extracted invoice direction and status. For Payable invoices that are not marked as paid, searches HubSpot for a matching contact by WhatsApp phone number, creates a HubSpot task associated with that contact, sends a confirmation back via WhatsApp, and posts the invoice details to Slack. For Receivable invoices, searches HubSpot for deals linked to the contact and matching the extracted invoice_id, then closes the deal as won and thanks the sender on WhatsApp when a match is found. Posts alerts to Slack when the invoice status is unknown or when no HubSpot deal is found for a receivable invoice. Setup Connect WhatsApp Business credentials for the WhatsApp Trigger and WhatsApp send actions, and set the correct phone number ID. Add Google Gemini (Google PaLM) API credentials and update the prompt/company name (currently "blankarray") to match your business. Connect HubSpot OAuth2 credentials and ensure your deals include an invoice_id property and your associations/contact phone fields support the workflow’s searches. Connect Slack credentials and select the target channel IDs for the Slack notification steps.
by Aumadi Technologies
Quick Overview This workflow listens for new rows in a Supabase image_jobs table, uses Anthropic Claude to expand each prompt, generates an image with Cloudflare Workers AI (FLUX), uploads the image to Supabase Storage, and writes the public image URL back to the original Supabase record. How it works Receives a webhook call from a Supabase Database Webhook when a new row is inserted into the image_jobs table. Extracts the inserted record ID and prompt value from the webhook payload and stops early with a JSON response if the prompt is empty. Sends the prompt idea to Anthropic Claude to produce a single, detailed image-generation prompt. Calls Cloudflare Workers AI (FLUX) to generate an image from the enhanced prompt. Converts the returned base64 image into binary data and uploads it to a public Supabase Storage bucket using the job ID as the filename. Builds the public Supabase Storage URL, updates the Supabase row with status = done and image_url, and returns the URL in the webhook response. Setup Create the image_jobs table in Supabase (for example by running the provided new-workflows-setup.sql) and ensure it includes fields like prompt, status, image_url, and error_message. Create a Supabase Storage bucket named generated-images (or update the bucket name in the workflow) and enable Public access so the public URL works. Add credentials for Supabase (project URL/host and service_role key), Anthropic Claude (HTTP header auth x-api-key), and Cloudflare Workers AI (HTTP header auth Authorization: Bearer ) and replace the placeholders in the workflow. In the Config step, set supabaseUrl to your Supabase project URL and confirm the bucket name and Claude model value. In Cloudflare, set your account ID in the Workers AI request URL, then create a Supabase Database Webhook for image_jobs inserts pointing to your n8n webhook URL /webhook/generate-image.
by WeblineIndia
Quick Overview This workflow collects standup updates via a webhook, stores each submission in Google Sheets, then runs daily at 10 AM to summarize the day’s standups with Google Gemini and post the result (or a no-updates notice) to a Slack channel. How it works Receives a POST webhook request containing standup fields (name, yesterday, today, blockers). Validates that all required fields are present, returning a 400 error response if anything is missing. Trims and formats the submitted values, adds a timestamp, and appends the standup entry to a Google Sheets worksheet before returning a 201 success response. Runs every day at 10 AM, reads all standup rows from Google Sheets, and keeps only entries submitted for the current date. If any standups exist for today, sends them to Google Gemini to generate a concise Slack-formatted team summary. Posts the generated summary to Slack, or posts a fallback message if no standups were submitted by the scheduled time. Setup Create a Google Sheet with columns Timestamp, Name, Yesterday, Today, and Blockers, and connect a Google Sheets OAuth2 credential. Add a Google Gemini (PaLM) API credential for the AI summary step. Connect a Slack OAuth2 credential and set the target channel for both the summary and the no-standup notification. Copy the webhook URL for the standup submission endpoint and configure your standup form/tool to send POST requests with JSON body fields name, yesterday, today, and blockers. Adjust the schedule trigger time (currently 10 AM) and update the Google Sheet document/worksheet selection if you use a different file or tab.
by Muh Resky Adiansyah
Salesforce Leads & Opportunities to PostgreSQL (Backfill & Incremental Sync ETL) This workflow extracts Lead and Opportunity data from Salesforce, transforms and normalizes the data, and loads it into PostgreSQL as a structured data bank for reporting and analytics. It is designed for scalable data ingestion and supports both historical backfill and incremental sync in a single workflow. Use Case This workflow is suitable when you need to: Centralize Salesforce data into a database for reporting Build a data warehouse for BI tools (Looker Studio, Metabase, etc.) Track lead-to-opportunity lifecycle Merge multiple Salesforce objects into a unified dataset Maintain a clean and normalized CRM data layer Two Input Modes 1. Historical Backfill (Manual Trigger) Run once to populate historical data. Set start_date and end_date in the "Set Historical Date Range" node Data is split into 7-day batches Each batch is processed sequentially to reduce API load 2. Incremental Sync (Schedule Trigger) Runs automatically (e.g. daily). Date range is generated dynamically using ISO datetime Typically pulls data from yesterday until today No manual input required Batch Processing Date ranges are processed in weekly batches. This helps: Prevent large API requests Reduce timeout risk Improve stability during backfill Keep memory usage efficient Core Workflow Logic 1. Data Extraction Fetch Lead records from Salesforce Fetch Opportunity records from Salesforce Filter using CreatedDate (since_datetime and until_datetime) 2. Phone-Based Routing Records are split into two paths: Records without phone: Skip normalization Still included in final dataset Records with phone: Processed for normalization Used for merging This ensures no data is lost even if phone is missing. 3. Phone Normalization (+62) Phone numbers are standardized into: +62XXXXXXXXXX Steps: Remove spaces and symbols Remove all non-digit characters Convert 0xxxx → 62xxxx Ensure no duplicated prefix (e.g. 6262) Add "+" prefix This uses Indonesia's International Direct Dialing (IDD) code: +62 4. Opportunity De-duplication Duplicate opportunities are removed Based on normalized phone key This ensures clean merging and avoids duplicate enrichment. 5. Lead–Opportunity Merge Merge is done using normalized phone fields: body.nomorlead body.nomoroppty Behavior: Lead is the primary dataset Opportunity enriches lead Records without phone: Still preserved Not removed 6. Data Standardization All records are transformed into a unified schema: Source_Object SF_Id CreatedDate CreatedById Name Phone Clean_Phone Email LeadSource Status StageName OwnerId AccountId Amount 7. Upsert to PostgreSQL Uses UPSERT (insert or update) Matching key: sf_id Behavior: New data → insert Existing data → update Ensures: No duplicate records Idempotent execution Data Flow Summary Salesforce (Lead + Opportunity) → Date Filtering → Batch Processing (weekly) → Phone Routing → Phone Normalization (+62) → Opportunity Deduplication → Lead–Opportunity Merge → Data Standardization → PostgreSQL (Upsert) Setup Requirements Before using this workflow, prepare the following: 1. Salesforce Salesforce OAuth2 credential Access to: Lead object Opportunity object Ensure API access is enabled 2. PostgreSQL Active PostgreSQL database Credentials configured in n8n Table created (see schema below) 3. n8n Environment n8n instance (cloud or self-hosted) Salesforce node configured PostgreSQL node configured 4. Date Configuration (Backfill) Set start_date and end_date manually in: "Set Historical Date Range" node 5. Schedule Configuration (Incremental) Configure Schedule Trigger Recommended: Daily execution Off-peak hours Minimal PostgreSQL Table Schema CREATE TABLE n8n_salesforce_data ( sf_id TEXT PRIMARY KEY, Source_Object TEXT, CreatedDate TIMESTAMP, CreatedById TEXT, Name TEXT, Phone TEXT, Clean_Phone TEXT, Email TEXT, LeadSource TEXT, Status TEXT, StageName TEXT, OwnerId TEXT, AccountId TEXT, Amount NUMERIC, synced_at TIMESTAMP DEFAULT NOW() ); Important Notes sf_id is used as the unique key for upsert Clean_Phone is recommended for indexing if used in analytics Data consistency depends on phone normalization quality Schema must be updated manually if additional fields are added Known Limitations Phone-based matching may fail if: Phone numbers are inconsistent Phone is missing in both Lead and Opportunity No deduplication for Leads (only Opportunities handled) No retry logic for API failures (can be added) Recommended Improvements Add index on Clean_Phone for faster queries Add logging table for monitoring ETL runs Add retry and error handling nodes Extend support for: Contact Account Campaign data Summary This workflow provides a reliable and scalable way to: Extract Salesforce data Normalize and merge datasets Store structured data in PostgreSQL Enable analytics and reporting pipelines It is best suited for teams building a lightweight data warehouse layer on top of Salesforce.
by Felix
What This Workflow Does Upload a job posting (PDF, image, or screenshot) and instantly get a tailored CV section and a matching cover letter – both written in the posting's language and tone, both honest about what you actually have. The workflow scores how well your stored CV matches the posting before and after AI rewriting, so you can see exactly how much keyword surfacing happened. Anything you don't actually have lands in a gaps array – never invented into bullets. How It Works Upload – Drop the job posting into the n8n web form, optionally with notes Load CV – Reads your structured Master CV from Google Sheets Extract – easybits Extractor pulls 10 structured fields from the posting (must-haves, keywords, language, tone, etc.) Score (before) – A Code node calculates a deterministic match score using keyword overlap Tailor bullets – Gemini rewrites your CV bullets to surface real overlap with the posting, mirrors employer phrasing, flags genuine gaps Score (after) – Same scoring formula, run against the rewritten bullets – the delta is the win Cover letter – A second Gemini call drafts a 3-paragraph letter in the posting's language and tone, referencing only the tailored CV Output – Both pieces get written into a single Google Doc, titled with company + role Done – A completion screen shows the score before/after, the Doc link, and any gaps Setup Guide 1. Run the CV Onboarding Workflow First This workflow assumes a populated Master CV Google Sheet. If you haven't run the CV Onboarding (easybits) workflow yet, do that first – it'll extract your CV into the right structure. 2. Install & Connect the easybits Extractor On n8n Cloud the easybits Extractor is available out of the box. On self-hosted n8n, install it via Settings → Community Nodes → enter @easybits/n8n-nodes-extractor. Sign up at easybits.tech for a free API key. Open the easybits: Extract Job Posting node and connect your credential. 3. Configure the Extraction Pipeline The Extractor uses 10 fields to pull structured data from the job posting. Paste each description into the corresponding field's description box: job_title (string) The exact job title as written in the posting. If multiple titles are mentioned, return the primary one. Return null if not stated. company (string) The hiring company's name. Return null if not stated or if the posting is from a recruiter without naming the company. seniority (string) One of: intern, junior, mid, senior, lead, principal, executive. Infer from title and years-of-experience requirements. Return null only if there is no signal at all. must_have_skills (array) Skills, tools, or specific qualifications the posting explicitly lists as required, must-have, mandatory, or essential. Return as SHORT noun phrases (1-3 words each). Examples: "Python", "PostgreSQL", "Kafka", "5 years experience", "fluent German". DO NOT return full sentences or full requirements. Break compound requirements into individual atoms – e.g., "Solid understanding of testing, monitoring, and profiling" must be returned as three separate items: "testing", "monitoring", "profiling". DO NOT include soft skills like "problem-solving" or "attention to detail". Return empty array if none are explicitly required. nice_to_have_skills (array) Skills listed as preferred, bonus, plus, nice-to-have, or "ideally". Same format as must_have_skills. Return empty array if none. responsibilities (array) Concrete duties or tasks the role involves, as short action phrases. Maximum 8 items. Empty array if the posting is purely qualifications-focused. keywords (array) Domain-specific terms, technologies, methodologies, or industry vocabulary worth mirroring in a CV. Exclude generic words like "team player". Maximum 15 items. tone (string) Writing style of the posting. One of: formal, professional, casual, technical. language (string) ISO 639-1 code of the posting's primary language (e.g., "en", "de", "nl"). location (string) Work location as stated. Include "remote", "hybrid", or city/country. Null if not stated. The 10-field cap matches the easybits free plan, so anyone can run this workflow as-is. 4. Connect Google Sheets Open the Load Master CV node and connect your Google Sheets credential. Replace the placeholder document ID with your Master CV sheet's ID and select the Master CV tab. 5. Connect Gemini Open both Gemini nodes (Gemini: Tailor Bullets and Gemini: Cover Letter) and connect your Google AI / Gemini credential. Default model: gemini-2.5-pro. 6. Connect Google Docs Open both Create Google Doc and Write to Google Doc nodes, connect your Google Docs credential. In Create Google Doc, pick a Drive and Folder where tailored applications should be saved (a dedicated folder is recommended). 7. Activate & Use Set the workflow to active, copy the form URL, and upload a real job posting. The completion screen returns the score delta and a link to the generated Google Doc. 🔧 Notes on Implementation Honesty guardrail. Both Gemini prompts forbid inventing experience. Skills the CV genuinely lacks land in a gaps array, surfaced on the completion screen – never faked into bullets or claimed in the cover letter. Deterministic scoring. The before/after match score is calculated in JavaScript, not by an LLM. The same formula runs against the original CV and the tailored bullets, so the delta reflects real keyword surfacing – not AI claiming it improved things. Must-haves count double in the formula; keywords count single. Defensive parsing. The toArray() helper in the Score nodes handles three shapes the Extractor may return for array fields: actual arrays, JSON strings, and comma-separated strings. This makes the workflow robust across different Extractor response shapes. Language and tone. Both come from the Extractor as structured fields, so a German posting yields a German CV section AND a German cover letter – automatically.
by Rajeet Nair
Overview This workflow implements a policy-driven LLM orchestration system that dynamically routes AI tasks to different language models based on task complexity, policies, and performance constraints. Instead of sending every request to a single model, the workflow analyzes each task, applies policy rules, and selects the most appropriate model for execution. It also records telemetry data such as latency, token usage, and cost, enabling continuous optimization. A built-in self-tuning mechanism runs weekly to analyze historical telemetry and automatically update routing policies. This allows the system to improve cost efficiency, performance, and reliability over time without manual intervention. This architecture is useful for teams building AI APIs, agent platforms, or multi-model LLM systems where intelligent routing is needed to balance cost, speed, and quality. How It Works Webhook Task Input The workflow begins when a request is sent to the webhook endpoint. The request contains a task and optional priority metadata. Task Classification A classifier agent analyzes the task and categorizes it into: extraction classification reasoning generation The agent also returns a confidence score. Policy Engine Policy rules are loaded from a database. These rules define execution constraints such as: preferred model size latency limits token budgets retry strategies cost ceilings. Model Routing A decision engine evaluates classification results and policy rules. Tasks are routed to either a small model (fast and cost-efficient) or a large model (higher reasoning capability). Task Execution The selected LLM processes the task and generates the response. Telemetry Collection Execution metrics are captured including: latency tokens used estimated cost model used success status. These metrics are stored in a database. Weekly Self-Optimization A scheduled workflow analyzes telemetry from the past 7 days. If performance trends change, routing policies are automatically updated. Setup Instructions Configure a Postgres database Create two tables: policy_rules telemetry Add LLM credentials Configure Anthropic credentials for the language model nodes. Configure policy rules Define preferred models, cost limits, and latency thresholds in the policy_rules table. Configure workflow settings Adjust parameters in the Workflow Configuration node: maximum latency cost ceiling token limits retry behavior. Deploy the API endpoint Send requests to the webhook endpoint: Use Cases AI API Gateway Route requests to different models based on complexity and cost constraints. Multi-Model AI Platforms Automatically choose the best model for each task without manual configuration. Cost-Optimized AI Systems Prefer smaller models for simple tasks while reserving larger models for complex reasoning. LLM Observability Track token usage, latency, and cost for each AI request. Self-Optimizing AI Infrastructure Automatically improve routing policies using real execution telemetry. Requirements n8n with LangChain nodes enabled Postgres database Anthropic API credentials Tables: policy_rules telemetry Optional: Monitoring dashboards connected to telemetry data External policy management systems
by Kanishka Shrivastava
Quick overview This workflow exposes a webhook that accepts an exported n8n workflow JSON, runs static validation and risk checks, then uses Groq (Llama 3.3 70B) via an AI agent to return a structured JSON review with metrics, risks, and best-practice recommendations. How it works Receives a POST request via a webhook containing a workflow object with exported n8n workflow JSON. Validates the payload structure and analyzes the workflow to generate metrics and findings such as orphan nodes, dead ends, missing error handling, placeholder credentials, deprecated nodes, and documentation gaps. Routes valid analyses to a Groq-powered AI agent that explains each finding (why it matters, risk, business impact, and best-practice fix) and formats the response as structured JSON. Routes invalid or malformed inputs to a formatter that returns a consistent { success: false, error } JSON response. Responds to the original webhook request with the final JSON analysis. Setup Add a Groq API credential in the Groq Chat Model node. You can generate a free API key at console.groq.com if you don't have one yet. Activate the workflow and copy the webhook URL from the Webhook trigger. This is the endpoint you'll send workflow JSON to for analysis. Configure your caller to POST { "workflow": { ... } } to the webhook URL, with the exported workflow JSON nested under the workflow key in the request body.
by Adem Tasin
Who’s it for This workflow is designed for creators, designers, and automation builders who need to generate visually consistent images at scale. It is ideal for teams producing branded visuals, social media assets, or AI-generated images where preserving a recognizable visual style is important. If you already manage prompts and image references in Google Sheets and want a repeatable, automated image generation pipeline, this template is a good fit. How it works / What it does The workflow is triggered via a webhook and reads pending image generation tasks from a Google Sheet. For each row, it downloads a reference image and analyzes its visual characteristics using Google Gemini, including color palette, composition, and overall artistic style. Using this analysis, Gemini generates a new image that follows the same visual style while applying your provided prompt. The generated image is uploaded to Google Drive, and the original Google Sheet is updated with the result or an error message. Real-time status updates are sent during execution using ntfy.sh notifications. How to set up Create a Google Sheet with columns such as gorsel_id, ana_prompt, stil_prompt, referans_url, and durum. Connect credentials for Google Sheets, Google Drive, and Google Gemini. Replace the Document ID and Folder ID values in the corresponding nodes. Update the ntfy topic name with your own unique topic. Activate the workflow and trigger it using the webhook URL. Requirements Google Sheets account Google Drive account Google Gemini (PaLM) API credentials Self-hosted n8n instance > This workflow uses community nodes and is supported on self-hosted n8n instances only. How to customize the workflow You can adjust the Wait nodes to better align with your API rate limits. To control how closely the generated image matches the reference style, modify the instructions in the Analyze – Gemini – Visual Style node. You can also extend the workflow with additional approval steps, storage locations, or notification channels without changing the core logic. 🧑💻 Creator Information Developed by: Adem Tasin 🌐 Website: ademtasin.com 💼 LinkedIn: ademtasin
by Daniel Turgeman
How it works A webhook receives a chatbot message or demo request form with an email address The email is validated and cleaned, then Lusha enriches the lead A priority score is calculated based on seniority, company size, and request type The lead is upserted into HubSpot; high-priority leads go to #urgent-demos on Slack, others to #demo-requests Set up steps Install the Lusha community node Add your Lusha API, Slack, and HubSpot credentials Point your chatbot or demo form webhook to the n8n endpoint Customize priority scoring thresholds and Slack channels