by WeblineIndia
Trade Break Reconciliation Assistant This workflow automates trade reconciliation between internal and external systems using Google Sheets. It detects mismatches (price, quantity, amount, etc.), uses AI to generate insights, updates records and sends email alerts. This eliminates manual effort and improves accuracy. Quick Implementation Steps Connect your Google Sheets (Internal & External Trades) Ensure both sheets contain a common trade_id Connect Groq/OpenAI model in n8n Configure Gmail for alerts Run the workflow manually or schedule it Monitor updates and alerts in real-time What It Does This workflow automates the reconciliation of trade data between two systems — internal and external — stored in Google Sheets. It compares records using trade_id and identifies mismatches such as differences in price, quantity, amount, side, currency or status. Once mismatches are detected, the workflow classifies their severity and uses AI to generate meaningful insights, including the likely reason, explanation and recommended action. This transforms raw data into actionable intelligence. Additionally, it updates both sheets with reconciliation results, handles missing trades by inserting records and sends detailed email alerts to ensure quick resolution of issues. Who It's For Finance & Operations teams Trade reconciliation analysts Back-office teams in trading firms FinTech automation engineers Anyone managing dual-system trade data Requirements n8n account (self-hosted or cloud) Google Sheets account (with Internal & External trade data) Groq/OpenAI API credentials Gmail account (for alerts) Proper sheet structure with fields like: trade_id price, quantity, amount currency, status How It Works & Setup Guide 1. Trigger Workflow starts using Manual Trigger 2. Fetch Data Fetch Internal Trades (Google Sheets) Fetch External Trades (Google Sheets) 3. Merge Data Uses SQL-based FULL OUTER JOIN on trade_id 4. Detect Mismatches Compares: Price Quantity Amount Side Currency Status Flags missing records 5. Classify Severity High → Price/Amount issues Medium → Quantity issues Low → Other mismatches 6. AI Insight Generation Sends trade data to AI model Returns: Reason Explanation Action 7. Data Update Updates Internal & External Sheets Fields updated: mismatch reason severity action 8. Handle Missing Trades Inserts missing records if trade exists only in one system 9. Notifications Sends email alerts: Trade mismatch alerts Missing trade alerts How To Customize Nodes Merge Node**: Modify SQL logic for additional fields Code Node (Detect Trade Breaks)**: Add/remove comparison conditions AI Node**: Customize prompt for deeper analysis Severity Logic**: Adjust classification rules Google Sheets Nodes**: Change column mappings Email Node**: Customize message format and recipients Add-ons Add Slack/Teams notifications Schedule workflow (cron trigger) Dashboard using Google Data Studio Store logs in database (MySQL/PostgreSQL) Add approval workflow before updating sheets Use Case Examples Daily trade reconciliation between broker and internal system Detecting missing trades in financial systems Identifying pricing discrepancies in trading operations Automating audit-ready reconciliation reports Real-time monitoring of trade data consistency Troubleshooting Guide | Issue | Possible Cause | Solution | | ----------------- | --------------------- | -------------------------------- | | No data fetched | Wrong Sheet ID | Verify Google Sheets connection | | Merge not working | Missing trade_id | Ensure both sheets have trade_id | | AI output error | Invalid JSON response | Check AI prompt format | | Emails not sent | Gmail not configured | Reconnect Gmail credentials | | Wrong severity | Logic mismatch | Update severity code logic | Need Help? If you need help setting up this workflow, customizing nodes or building advanced automation, feel free to reach out our n8n automation experts. We can help you: Customize this workflow for your business. Add advanced features and integrations. Build scalable automation systems.
by Salman Mehboob
Never miss a lead from your Instagram ads again. This workflow automatically monitors every comment on your Instagram ad posts in real time, classifies the comment using AI, and takes the right action instantly — whether that is replying with accurate information from your knowledge base, thanking a happy customer, or alerting your team about a negative review that needs human attention. Built for agencies, service businesses, and ecommerce brands running Instagram ad campaigns who are losing potential clients because comments go unanswered for hours — or worse, never get a reply at all. The Problem This Solves When you run Instagram ads, your comment section becomes your most active sales channel. Potential customers ask about pricing, timelines, and services directly in the comments. Happy customers leave reviews. Unhappy ones post complaints. Competitors spam your section with their own links. Managing all of this manually is impossible at scale: Comments come in at 2am when your team is offline A single active ad can receive hundreds of comments per day Slow replies mean lost leads — potential clients move on to competitors who respond faster Inconsistent replies from different team members destroy brand voice Negative comments that go unanswered damage ad performance and brand reputation Spam comments clutter your section and reduce trust from real prospects This workflow solves every one of these problems automatically. How It Works Step 1 — Real-Time Instagram Webhook Trigger The workflow fires the instant someone comments on your Instagram ad post. No polling. No delays. The comment is received within seconds via the Meta Graph API webhook, giving you a response time advantage that manual management can never match. Step 2 — Smart Filter Before any processing happens, the workflow checks three things: The comment field is confirmed as a real comment (not a like or post update) The comment is not from your own account (prevents reply loops) The post is an ad post (media_product_type = AD) This ensures only relevant, genuine comments from real users trigger the workflow. Step 3 — Fetch Full Comment Details The workflow calls the Instagram Graph API to retrieve the full comment data including the commenter username, exact comment text, and comment ID needed for replying. Step 4 — Fetch Ad Post Content The workflow fetches the caption and details of the ad post the comment was left on. This is critical context for the AI — it needs to understand what is being advertised before it can classify or answer the comment accurately. Step 5 — Clean and Normalize Data All extracted data is normalized into clean variables: post text, post permalink, comment text, comment ID, and commenter username. This makes all downstream nodes simple and reliable. Step 6 — AI Comment Classifier An AI agent powered by OpenRouter (GPT-4o) reads both the post caption and the comment together and classifies the comment into one of four categories: QUERY** — The person is asking about the service, price, timeline, or process POSITIVE_REVIEW** — The person is expressing satisfaction or giving a compliment NEGATIVE_REVIEW** — The person is complaining, expressing frustration, or calling the service fake SPAM** — The comment is irrelevant, promotional, or from a bot The classifier also returns a confidence level: HIGH, MEDIUM, or LOW. This structured output is enforced via a JSON output parser ensuring 100% reliable downstream routing. Step 7 — Switch Node Routes to the Right Branch Based on the classification the workflow splits into four paths: QUERY Branch: The AI reply agent searches your Google Docs knowledge base for the answer. If found it writes a clear, helpful, human-sounding public reply that answers the question and ends with a soft call to action. If the answer is not in the knowledge base it redirects the user to your DM or WhatsApp without making up information. The reply is posted directly to Instagram via the Graph API. POSITIVE_REVIEW Branch: The AI reply agent writes a warm, genuine thank-you reply without consulting the knowledge base. It keeps it short, sounds human, and subtly encourages others to try the service. The reply is posted directly to Instagram via the Graph API. NEGATIVE_REVIEW Branch: No auto reply is posted. Instead a detailed Slack alert is sent immediately to your team with the commenter username, the full comment text, and a prompt to handle it manually. Negative comments require human judgment and empathy — this workflow keeps humans in control of the most sensitive interactions. SPAM Branch: No action taken. The comment is ignored completely. No reply, no alert, no wasted API calls. What Makes This Workflow Unique Most Instagram comment automation tools either reply to everything with the same canned message, or require expensive third-party subscriptions like ManyChat or Spur. This workflow does something none of them do: Two-context AI classification** — the classifier reads both the post content AND the comment together, not just the comment in isolation. This produces dramatically more accurate classifications, especially for short or ambiguous comments Knowledge base powered replies** — answers come from your actual business document, not hallucinated AI responses. When information is not available the AI redirects to your team rather than guessing Confidence-based routing** — the classifier flags low confidence cases so you can add human review for uncertain classifications Negative review human handoff** — negative comments are never auto-replied to. Your team gets instant Slack alerts with full context to handle reputation-sensitive situations personally Free to run** — uses your own OpenRouter API key and Meta Graph API. No third-party subscription required Requirements Instagram Business Account connected to a Facebook Page Meta Developer App with webhooks configured for Instagram comments System User token from Meta Business Portfolio with instagram_basic and pages_read_engagement permissions n8n instance (self-hosted or cloud) with the webhook URL registered in Meta Developer Dashboard OpenRouter API key (supports GPT-4o, Gemini, Claude, and 200+ other models) Google Docs OAuth2 credentials with a knowledge base document prepared Slack API credentials with a channel configured for negative review alerts ngrok or a public HTTPS URL if running n8n locally Setup Steps Create your Meta Developer App and configure Instagram webhooks pointing to your n8n webhook URL Subscribe your Instagram Business Account to the app using the Facebook Page subscribed_apps endpoint Generate a System User token in Meta Business Portfolio with the required permissions Create your knowledge base as a Google Doc with your services, prices, FAQs and contact information Add your OpenRouter API key to n8n credentials Connect your Google Docs OAuth2 account and update the document ID in the Knowledge Base tool node Connect your Slack account and update the channel or user ID in the Inform User node Update the filter condition with your Instagram username to prevent reply loops Activate the workflow and test by commenting on one of your Instagram ad posts Customization Options Change the AI model** — swap GPT-4o for any OpenRouter model including Claude, Gemini Flash, or Mistral to control cost Extend the knowledge base** — add product FAQs, testimonials, pricing tables, or process explanations to improve answer quality Add Instagram DM** — extend the QUERY branch to also send a private DM with your WhatsApp link or service proposal alongside the public reply Add Telegram alerts** — replace or complement Slack with Telegram notifications for negative reviews Extend to Facebook** — the classifier and reply logic works identically for Facebook page comments. Add a second webhook trigger for Facebook and merge both into the same classification flow Add confidence gating** — route LOW confidence classifications to a Slack approval queue before posting any reply Localization** — the system prompt handles Urdu, English, and mixed language automatically. Extend to any other language by adding examples to the classifier prompt Use Cases SEO and digital marketing agencies** managing multiple client Instagram accounts and ad campaigns Service businesses** running Instagram ads for consulting, coaching, legal, medical, or educational services Ecommerce brands** receiving high volumes of product questions on sponsored posts Real estate agencies** handling inquiries on property listing ads Any business** that spends money on Instagram ads and cannot afford to let leads go cold in the comment section Nodes Used Webhook — Instagram comment trigger Filter — comment validation and ad post check HTTP Request — Instagram Graph API for comment details and ad post content IF — comment text existence check Set — data normalization AI Agent (LangChain) — comment classifier with structured output AI Agent (LangChain) — comment reply generator Structured Output Parser — enforces JSON classification output OpenRouter Chat Model — powers both AI agents Google Docs Tool — knowledge base retrieval Switch — routes to correct branch based on classification HTTP Request — posts reply to Instagram via Graph API Slack — sends negative review alert to team Built with Meta Graph API v25.0 and OpenRouter. Tested on Instagram Business accounts connected via Facebook Business Portfolio System Users. 📩 Support & Contact 📧 Email: salmanmehboob1947@gmail.com 💼 LinkedIn: Salman Mehboob
by Tony Adijah
Who is this for This workflow is built for professionals, founders, freelancers, and anyone drowning in email who wants to automatically triage their inbox using AI — sorting emails into categories, applying Gmail labels, and generating reply drafts for important messages, all running locally with Ollama (zero paid API costs). What this workflow does It watches your Gmail inbox for new unread emails, uses a local AI model (Ollama) to classify each email into one of six categories (Urgent, Action Required, Follow-up, Newsletter, Automated, or Spam/Promotional), automatically applies the matching Gmail label, generates reply drafts for high-priority emails, and logs every processed email to Google Sheets for analytics. How it works Gmail Trigger watches your inbox for new unread emails at a configurable interval (default: every 30 minutes). Extract Email Data parses the sender, subject, body, attachments, and metadata into clean fields — handles all Gmail node output formats. AI Classifier (Ollama, running locally) analyzes the email content and returns a structured classification with category, priority, confidence score, summary, suggested action, sentiment, and a reply draft for important messages. Extract Classification robustly parses the AI response (handles markdown fences, nested objects, and edge cases) and merges it with email metadata. Smart Router sends each email down one of six dedicated paths based on its classification. Gmail Label nodes automatically apply the correct label to each email in your inbox. Reply Draft nodes create Gmail drafts for Urgent and Action Required emails — ready for you to review, edit, and send from your Drafts folder. Log Entry tracks every processed email in Google Sheets with category, priority, confidence, summary, and timestamp for analytics and review. Setup steps Gmail OAuth — Connect your Google account. Grant read, modify, and compose permissions. Create Gmail Labels — In Gmail, manually create these labels (the workflow applies them automatically): 🔴 Urgent 📋 Action Required 💬 Follow-up 📰 Newsletter 🤖 Automated 🚫 Spam-Promo Get Label IDs — Use the Gmail API or n8n's Gmail node (operation: "Get Many Labels") to find each label's ID. Update the labelIds in each Gmail Label node with your actual IDs. Ollama — Ensure Ollama is running locally (http://localhost:11434) with your preferred model pulled (e.g., ollama pull mistral). Change the model name in the Ollama Chat Model node if needed. Google Sheets (optional) — Connect your Google Sheets OAuth credential and set a spreadsheet ID in the logging node. Create a sheet with columns: Date, From, Subject, Category, Priority, Confidence, Reason, Summary, Key Action, Has Reply Draft, Sentiment, Auto Archive, Gmail ID, Processed At. Test — Send yourself a few test emails (urgent request, newsletter, promotional) and run the workflow manually to verify classification accuracy. Requirements Gmail account with OAuth credentials (read, modify, compose permissions) Ollama running locally with a pulled model (mistral, llama3, gemma2, etc.) Google Sheets account with OAuth credentials (optional, for logging) n8n instance (self-hosted recommended for Ollama connectivity) How to customize Swap mistral for llama3, gemma2, deepseek, or any Ollama-compatible model. Add more categories by editing the AI system prompt and adding outputs to the Switch node. Change the reply draft tone (formal, casual, friendly) in the AI system prompt. Add Slack or Telegram notifications for urgent emails by branching from the Label nodes. Add auto-archive for newsletters and spam by adding a Gmail "Remove Labels" node (remove INBOX label). Decrease the polling interval for near-real-time processing. Add sender whitelist/blacklist logic in a Code node before the AI classifier.
by Incrementors
Sales Call to HubSpot CRM Note Logger (WayinVideo + GPT-4o-mini + HubSpot) Short Description Paste any Zoom, Google Meet, or Teams recording URL into a simple form along with the contact email, company name, call purpose, and sales rep name and the workflow logs everything to HubSpot automatically. WayinVideo transcribes the full call with speaker labels and timestamps, then GPT-4o-mini extracts nine structured CRM fields including pain points, objections, key quotes, next steps, deal stage recommendation, sentiment, and a confidence score. A formatted note is created on the matching HubSpot contact and a follow-up task is created with the agreed next steps. Everything is also logged to Google Sheets with the HubSpot Note ID, Task ID, and Contact ID. Built for sales teams, account managers, and agencies who want structured CRM notes created automatically after every call. What This Workflow Does Transcribes sales calls with speaker labels** — WayinVideo processes the full recording and returns every spoken segment attributed to the correct speaker with timestamps Extracts nine structured CRM fields** — GPT-4o-mini identifies call summary, pain points, objections raised, key quotes, next steps, follow-up date, deal stage recommendation, sentiment, and a deal confidence score from 1–10 Looks up the HubSpot contact by email** — The workflow searches HubSpot for the contact using the email you submitted — no manual ID lookup required Creates a formatted engagement note on the HubSpot contact** — The full CRM note with all nine sections is posted directly to the contact record in HubSpot Creates a follow-up task in HubSpot** — A task linked to the same contact is created with the next steps from the call and the agreed follow-up date as the due date Polls automatically until transcription is ready** — Waits 90 seconds then checks every 30 seconds until the transcript is available, with no manual monitoring needed Logs all 16 fields to Google Sheets** — Appends a row with contact details, call metadata, all CRM intelligence fields, and HubSpot Note ID, Task ID, and Contact ID Setup Requirements Tools Needed n8n instance (self-hosted or cloud) WayinVideo account with API access OpenAI account with GPT-4o-mini API access HubSpot account with a Private App token Google Sheets (one sheet with a tab named CRM Call Log) Credentials Required WayinVideo API key (pasted into 2. WayinVideo — Submit Transcription and 4. WayinVideo — Get Transcript Results) OpenAI API key HubSpot Private App token (pasted into 11. HTTP — Search HubSpot Contact, 13. HTTP — Create HubSpot Note, and 14. HTTP — Create HubSpot Task) Google Sheets OAuth2 > ⚠️ WayinVideo API key appears in 2 steps — replace YOUR_WAYINVIDEO_API_KEY in both 2. WayinVideo — Submit Transcription and 4. WayinVideo — Get Transcript Results. Missing either one will cause the workflow to fail. > ⚠️ HubSpot Private App token appears in 3 steps — replace YOUR_HUBSPOT_PRIVATE_APP_TOKEN in 11. HTTP — Search HubSpot Contact, 13. HTTP — Create HubSpot Note, and 14. HTTP — Create HubSpot Task. Missing any one will cause those steps to fail. Estimated Setup Time: 25–30 minutes Step-by-Step Setup Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import Get your WayinVideo API key — Log in to your WayinVideo account → go to Account Settings → copy your API key Add your WayinVideo API key to node 2 — Open node 2. WayinVideo — Submit Transcription → find the Authorization header value Bearer YOUR_WAYINVIDEO_API_KEY → replace YOUR_WAYINVIDEO_API_KEY with your actual key Add your WayinVideo API key to node 4 — Open node 4. WayinVideo — Get Transcript Results → find the same Authorization header → replace YOUR_WAYINVIDEO_API_KEY with the same key Connect OpenAI — Open node 9. OpenAI — GPT-4o-mini Model → click the credential dropdown → add your OpenAI API key → test the connection Create your HubSpot Private App — Go to your HubSpot account → Settings → Integrations → Private Apps → Create a private app → give it a name → under Scopes, enable: crm.objects.contacts.write, crm.objects.notes.write, crm.objects.tasks.write → click Create app → copy the access token Add your HubSpot token to node 11 — Open node 11. HTTP — Search HubSpot Contact → find the Authorization header value Bearer YOUR_HUBSPOT_PRIVATE_APP_TOKEN → replace YOUR_HUBSPOT_PRIVATE_APP_TOKEN with your actual token Add your HubSpot token to node 13 — Open node 13. HTTP — Create HubSpot Note → find the same Authorization header → replace YOUR_HUBSPOT_PRIVATE_APP_TOKEN with the same token Add your HubSpot token to node 14 — Open node 14. HTTP — Create HubSpot Task → find the same Authorization header → replace YOUR_HUBSPOT_PRIVATE_APP_TOKEN with the same token Create your Google Sheet tab — Open your Google Sheet → add a tab named exactly CRM Call Log → add these 16 column headers in row 1: Contact Email, Contact Name, Company, Call Purpose, Call Date, Sales Rep, Call Duration (min), HubSpot Contact ID, HubSpot Note ID, HubSpot Task ID, Deal Stage, Sentiment, Confidence Score, Follow-up Date, Recording URL, Created On Connect Google Sheets — Open node 15. Google Sheets — Log CRM Entry → click the document field → replace YOUR_GOOGLE_SHEET_ID by selecting your spreadsheet or entering the Sheet ID (the string between /d/ and /edit in your Sheet URL) → click the credential dropdown → add Google Sheets OAuth2 → authorize access Activate the workflow — Toggle the workflow to Active → copy the Form URL from node 1. Form — Call Recording + CRM Details → open it in a browser to submit your first call How It Works (Step by Step) Step 1 — Form: Call Recording + CRM Details You open the form URL in a browser and fill in seven fields: the call recording URL (Zoom, Google Meet, Teams, or Loom), the contact email address in HubSpot, the contact name, the company name, the call purpose (e.g. Discovery Call, Demo, Negotiation), the call date, and the sales rep name. Submitting the form starts the workflow. Step 2 — HTTP: WayinVideo — Submit Transcription The recording URL is sent to the WayinVideo transcription API with the target language set to English. WayinVideo accepts the job and returns a task ID confirming transcription has started. Step 3 — Wait: 90 Seconds The workflow pauses for 90 seconds before the first status check. Sales calls are typically 30–60 minutes long and need more initial processing time than short videos. Step 4 — HTTP: WayinVideo — Get Transcript Results A GET request checks the WayinVideo results endpoint using the task ID from step 2. It returns the current processing status and, once complete, the full speaker-labeled transcript. Step 5 — IF: Transcription Complete? This is the polling gate. If the status equals SUCCEEDED (YES path), the transcript is ready and the workflow moves forward to formatting. If still processing (NO path), the workflow routes to 6. Wait — 30 Seconds Retry which pauses 30 seconds then loops back to step 4 to check again. This repeats until SUCCEEDED. Step 6 — Wait: 30 Seconds Retry When the transcript is not yet ready, the workflow waits 30 seconds then returns to step 4 for another check. The loop continues automatically. Step 7 — Code: Format Transcript Each segment is formatted as [Speaker Name | MM:SS] text. Total call duration in minutes, unique speaker names, and all seven form inputs are packaged here for the AI prompt. Step 8 — AI Agent: Extract CRM Note GPT-4o-mini receives the formatted transcript and a detailed system prompt. It extracts nine labeled sections: a 3–4 sentence call summary, pain points the prospect actually mentioned, objections raised during the call, the most important quotes, next steps with owners, the agreed follow-up date (or TBD), a deal stage from a fixed seven-option list, a sentiment label from a fixed five-option list, and a confidence score from 1–10. GPT is instructed to write only from what was actually said — no invented content. Step 9 — OpenAI: GPT-4o-mini Model This is the language model powering the CRM extraction. It runs with default settings for consistent, structured output. Step 10 — Code: Parse CRM Output All nine labeled sections are extracted from the AI output using regex. A full formatted HubSpot note body is assembled with sections for summary, pain points, objections, quotes, next steps, and a deal intelligence line showing stage, sentiment, and confidence score in one readable block. A follow-up timestamp is calculated — if a specific date was mentioned in the call it is used; if not, a default of 7 days from now is set for the HubSpot task due date. All call metadata is carried forward for the sheet log. Step 11 — HTTP: Search HubSpot Contact A POST request searches HubSpot for a contact matching the email address you submitted. It returns the contact's details including the HubSpot internal contact ID. Step 12 — Code: Extract HubSpot Contact ID The contact ID is extracted from the search results. If no contact is found for that email, the step throws a clear error stopping the workflow — preventing a note from being created on the wrong contact or no contact at all. Step 13 — HTTP: Create HubSpot Note A POST request creates an engagement note on the HubSpot contact using the full formatted note body. The note timestamp is set to the call date you submitted. The note is associated with the contact using HubSpot's standard association type ID 202. Step 14 — HTTP: Create HubSpot Task A follow-up task is created on the same HubSpot contact. The task subject includes the contact name and company. The task body contains the next steps extracted from the call. The task due date is set to the follow-up timestamp calculated in step 10. The task is marked HIGH priority and type CALL, and starts with NOT_STARTED status. Step 15 — Google Sheets: Log CRM Entry One row is appended to your CRM Call Log tab with all 16 columns: contact email, name, company, call purpose, date, sales rep, duration, HubSpot Contact ID, Note ID, Task ID, deal stage, sentiment, confidence score, follow-up date, recording URL, and the log timestamp. Key Features ✅ Contact lookup by email — No manual contact ID lookup needed — the workflow finds the HubSpot contact automatically using the email you provide at submission ✅ Nine structured CRM fields per call — Pain points, objections, key quotes, deal stage, sentiment, and confidence score are all extracted separately — not lumped into one generic note ✅ Fixed deal stage and sentiment options — GPT is constrained to exact picklist values for both fields so every entry in your sheet is filterable and consistent ✅ Follow-up task created automatically — You never need to manually create a follow-up task — it is generated from the next steps in the call with the agreed due date already set ✅ HubSpot Note ID and Task ID logged to Sheets — Every row in your Google Sheets log contains the exact HubSpot IDs so you can cross-reference or deep-link directly to the record ✅ 7-day default due date when follow-up not mentioned — If no specific follow-up date was discussed, the task is automatically due in 7 days so nothing falls through the cracks ✅ Full note body formatted for HubSpot readability — The note is structured with labeled sections and a deal intelligence summary line so any sales rep who opens the contact record can scan it in 30 seconds Customisation Options Add a retry limit to stop infinite polling — Before node 6. Wait — 30 Seconds Retry, add a Set step that increments a poll counter, then add a second IF check to stop after 15 polls and send a Slack or Gmail error notification instead of looping indefinitely — this is noted as a known risk in the workflow overview. Create the HubSpot contact if not found — In node 12. Code — Extract HubSpot Contact ID, instead of throwing an error when no contact is found, add an HTTP step that creates the contact in HubSpot using the form's contact name, email, and company name — then continue to note and task creation. Update the HubSpot deal stage property — After node 13. HTTP — Create HubSpot Note, add a PATCH request to https://api.hubapi.com/crm/v3/objects/contacts/{id} with the dealstage property set to the extracted deal stage value — keeping the contact record's pipeline stage in sync with every call. Send the rep a summary email after logging — After node 15. Google Sheets — Log CRM Entry, add a Gmail step that sends the sales rep a plain-text email with the call summary, action items, and a direct link to the HubSpot contact so they have everything in their inbox immediately. Log calls to a HubSpot Deal instead of Contact — In nodes 13 and 14, change the association type and target object from contacts to deals — and add a step before note creation that searches HubSpot for a deal associated with the contact — routing notes and tasks to the deal record instead. Troubleshooting WayinVideo returning an error on submission: Confirm YOUR_WAYINVIDEO_API_KEY in node 2. WayinVideo — Submit Transcription is replaced with your actual API key — not the placeholder Confirm the same replacement was made in node 4. WayinVideo — Get Transcript Results — both steps require the key Check the execution log of node 2 for the raw error — a 401 means wrong key, a 422 means the URL format is unsupported Workflow stuck in the polling loop: Check that the recording URL is publicly accessible — Zoom recordings with passwords, expired links, or private Meet recordings will not be processed Open the execution log of node 4. WayinVideo — Get Transcript Results to inspect the raw response — WayinVideo may have returned FAILED with a specific reason If the loop runs indefinitely, deactivate the workflow, fix the recording URL, and resubmit — this is a known risk flagged in the workflow overview HubSpot contact not found: Confirm the email address submitted in the form exactly matches the email in HubSpot — including capitalization and no extra spaces Check that the HubSpot Private App token in node 11. HTTP — Search HubSpot Contact is valid and not expired If the contact does not exist in HubSpot, the workflow stops with a clear error at step 12 — add the contact to HubSpot first, then resubmit the form HubSpot note or task not being created: Confirm YOUR_HUBSPOT_PRIVATE_APP_TOKEN is replaced in all three steps: 11. HTTP — Search HubSpot Contact, 13. HTTP — Create HubSpot Note, and 14. HTTP — Create HubSpot Task Confirm your Private App has all three required scopes enabled: crm.objects.contacts.write, crm.objects.notes.write, crm.objects.tasks.write — check in HubSpot Settings → Integrations → Private Apps Check the execution log of node 13 or 14 for the HubSpot API error — a 403 means missing scope permission Google Sheets not logging the row: Confirm YOUR_GOOGLE_SHEET_ID in node 15. Google Sheets — Log CRM Entry is replaced with your actual sheet ID from the URL Confirm the tab is named CRM Call Log exactly and all 16 column headers match exactly Check that the Google Sheets OAuth2 credential is connected and not expired — re-authorize if needed Support Need help setting this up or want a custom version built for your team or agency? 📧 Email: info@incrementors.com 🌐 Website: https://www.incrementors.com/
by Tricore Infotech Pvt Ltd
Quick overview This workflow is built to monitor your Shopify store every hour and automatically detect open, unfulfilled orders that have gone past your dispatch SLA window. The moment a breach is detected, alerts go out to Slack and Email instantly, helping your team respond faster, reduce fulfillment delays. How it works Hourly Monitoring — The workflow wakes up automatically every hour using the n8n Schedule Trigger. Fetch Shopify Orders — Pulls up to 250 open, unfulfilled Shopify orders that are older than your configured SLA window. Smart Deduplication — Loads your Google Sheet breach log and skips any orders that were already reported in a previous run. Order Processing — Calculates how old each order is, flags VIP orders, and builds your Slack message and email. Generate Email HTML — A dedicated node builds the full HTML email body from the processed order data. Instant Notifications — Sends real-time Slack alerts and HTML email notifications for newly breached orders only. Error Alerts — If any workflow step fails, the global Error Trigger immediately sends the failed node name and error message to Slack. Setup Connect Shopify OAuth2 credentials so the workflow can read open orders from your store. Connect Google Sheets OAuth2 credentials and create a sheet with headers runTimestamp, unfulfilledOrderIds, vipOrderIds, totalOrders, and alertStatus, then paste its URL into googleSheetUrl in the SLA config. Connect Slack credentials and set slackEscalationChannel to the target channel ID for both breach and error alerts. Connect Gmail OAuth2 credentials and set recipientMail (and optionally adjust slaHours and vipThreshold) in the SLA config before activating the workflow. Requirements n8n Version:** 2.20 or higher Shopify Store:** An active Shopify store with API access Accounts Needed:** Shopify, Google Sheets, Gmail, Slack (all OAuth2) Google Sheet:** Set up in advance with the 5 required column headers (see Step 2 above) Customization Check More Often:** Change the Schedule Trigger to every 30 minutes for high-volume stores. Paid Orders Only:** In the Process & Deduplicate node, add && order.financial_status === 'paid' to the SLA check so only paid orders are flagged. Send to More People:** Duplicate the Gmail node and connect both copies to Log Breach to Sheets, or use a distribution email address. Add SMS for Critical Delays:** Connect a Twilio node to send a text message for orders breaching 120+ hours.
by Milan Vasarhelyi - SmoothWork
Video Introduction Want to automate your inbox or need a custom workflow? 📞 Book a Call | 💬 DM me on Linkedin What This Workflow Does This automation eliminates the tedious task of manually entering receipt data by automatically processing receipt images uploaded to Google Drive. When you drop a new receipt into a monitored folder, the workflow extracts vendor name, date, itemized purchases, and total amount using AI, logs everything to a Google Sheet, and sends you an email confirmation with a formatted summary. Key Benefits Save time:** No more manual data entry from receipts Reduce errors:** AI-powered extraction ensures accuracy Stay organized:** All expense data automatically tracked in one spreadsheet Get notified:** Instant email confirmation when receipts are processed Common Use Cases Personal expense tracking and budgeting Small business accounting and bookkeeping Reimbursement documentation Tax preparation record-keeping Setup Requirements Accounts needed: Google Drive account (for receipt storage) OpenAI account (for AI-powered data extraction) Google Sheets account (for data logging) Gmail account (for notifications) Configuration steps: Google Drive: Connect your account and select the folder where you'll upload receipts Google Sheets: Make a copy of the template spreadsheet (link in workflow notes) to your own account and update the Sheet ID in the workflow Email recipient: Change the notification email address to your own AI model: The workflow uses GPT-4-mini by default, but you can select a different OpenAI model based on your accuracy and cost preferences The AI Agent is configured to extract data in a strict JSON format with fields for vendor, date (converted to DD/MM/YYYY), itemized purchases, and total amount.
by ben daamer
Who it's for Legal, Procurement, and Compliance teams at mid-size companies. ESN and agencies selling AI-powered contract review as a service. How it works Upload a contract PDF through a rich form (with metadata: contract type, counterparty, department, submitter). The workflow first checks Supabase for duplicates to avoid re-analyzing the same contract. Then it runs a two-pass AI analysis: Pass 1 classifies the contract (type, parties, dates, jurisdiction), Pass 2 performs deep risk analysis (clause-by-clause risk levels, missing clauses, obligations, negotiation points, compliance flags). Results are scored 0–100 with risk levels (CRITICAL / HIGH / MEDIUM / LOW). A structured report is generated as both Slack Block Kit (rich formatting) and HTML email. High-risk contracts trigger a Slack alert with full blocks and an email report to the submitter. Low-risk contracts get a summary Slack notification. All analyses are stored in Supabase with full metadata for audit. An Error Trigger sends admin notifications to a dedicated Slack channel. How to set up Run the SQL from the "Supabase Schema" sticky note in Supabase SQL Editor. Set environment variables: SUPABASE_URL, SUPABASE_SERVICE_KEY. Add credentials in n8n: OpenAI (Header Auth), Supabase, Slack, Gmail (optional). Configure the Config node: RISK_THRESHOLD, SLACK_CHANNEL, ADMIN_SLACK_CHANNEL, AI_MODEL, ALERT_EMAIL, ENABLE_EMAIL, CONTRACT_LANG. Activate the workflow and share the Form URL with your team.
by WeblineIndia
(Retail) Customer Cleanup API → Supabase and send Notification This workflow provides an API-first solution to validate, clean, deduplicate and store customer data in Supabase. It ensures consistent customer records, prevents duplicates and keeps both internal teams and customers informed through automated notifications. This workflow acts as a backend customer intake API. It validates and normalizes incoming customer data, checks for existing users in Supabase, stores new customers safely and returns clear API responses. Internal teams receive Slack and Telegram updates, while customers get an email confirmation on successful creation. You receive: Centralized customer data validation** Automatic duplicate prevention** Supabase-backed customer storage** Real-time API responses** Team notifications + user confirmation email** Ideal for retail, e-commerce and SaaS teams that want clean customer data without manual intervention. Quick Start – Implementation Steps Import the provided n8n workflow JSON. Configure Supabase credentials with read/write access. Connect Slack, Telegram and Gmail/SMTP credentials. Copy the Webhook URL and use it as your customer intake API. Activate the workflow — your customer API is live. What It Does This workflow automates customer data intake and processing: Receives customer data via a POST API call. Cleans and normalizes names, email and phone numbers. Validates required fields and formats using JavaScript. Aggregates clear, field-specific validation errors. Checks Supabase to prevent duplicate users. Stores valid, new customers in Supabase. Returns structured API responses (success, validation error or duplicate). Sends notifications to Slack and Telegram. Emails the customer after successful account creation. This ensures reliable, consistent customer records across systems. Who’s It For This workflow is ideal for: Retail and e-commerce platforms CRM and customer data teams SaaS product teams Backend automation teams Marketing teams needing clean contact lists Developers building API-driven systems Requirements to Use This Workflow To run this workflow, you need: n8n instance** (cloud or self-hosted) Supabase project** with a customers table Supabase service role key Slack workspace** with API access Telegram bot** + chat ID Gmail or SMTP account** for user notifications How It Works API Request – Client sends customer data to the webhook endpoint. Validation & Cleanup – JavaScript validates and formats data. Validation Fail – Returns 400 response with clear error messages. Duplicate Check – Supabase is queried using the email address. Duplicate Found – Returns 409 response without creating a record. Create Customer – New customer is saved in Supabase. Success Response – API confirms successful creation. Notifications – Slack, Telegram and customer email are triggered. Setup Steps Create a Supabase table with fields for customer data, validation status and errors. Add Supabase credentials to n8n. Import the workflow JSON into n8n. Configure the Webhook node and copy the API URL. Review the validation logic if custom rules are required. Configure Slack, Telegram and email credentials. Test using Postman for invalid, duplicate and valid requests. Activate the workflow. How To Customize Nodes Customize Validation Rules Update the JavaScript validation node to add country-specific phone rules or additional fields. Customize Duplicate Logic Extend duplicate checks to include phone numbers or other identifiers. Customize Notifications Modify Slack and Telegram messages, add emojis, mentions or execution metadata. Add-Ons (Optional Enhancements) You can extend this workflow to: Add API key authentication Enable rate limiting Log failed attempts separately Support multi-country phone validation Add CRM or email marketing sync Implement soft deletes or upserts Use Case Examples 1. Customer Registration API Centralize customer creation for web and mobile apps. 2. Data Hygiene Automation Prevent invalid or duplicate contacts in your database. 3. Retail & CRM Integration Keep customer records consistent across systems. 4. Marketing Readiness Ensure only clean, valid contacts enter campaigns. Troubleshooting Guide | Issue | Possible Cause | Solution | | ----------------------- | ----------------------------- | ----------------------------------- | | Validation always fails | Incorrect payload structure | Ensure data is sent in request body | | Duplicate user created | Duplicate check misconfigured | Verify Supabase filter conditions | | No Slack alert | Invalid credentials | Reconnect Slack API | | No email sent | Gmail/SMTP not configured | Verify sender account | | API not responding | Webhook not active | Activate the workflow | Need Help? If you need help customizing or extending this workflow, adding authentication, scaling for high traffic, integrating CRMs or enhancing validation, the n8n automation team at WeblineIndia can assist you with production-ready automation and integration support. Contact us today.
by Cheng Siong Chin
How It Works This workflow automates end-to-end recruitment operations for HR teams, talent acquisition specialists, and hiring managers facing high-volume candidate processing challenges. It solves the critical problem of manual interview coordination, inconsistent candidate evaluation, and scattered assessment data across multiple platforms.The system orchestrates a seamless pipeline: triggers initiate workflow execution, configuration nodes prepare analytics parameters, and Former Analytics Agent structures the evaluation framework. The Orchestration Agent intelligently routes candidates through specialized AI assessment modules—including sourcing verification, simulated interviews, and competency evaluation—each powered by different AI models (OpenAI GPT-4, Claude) optimized for specific assessment criteria. Consolidated insights automatically populate Google Sheets for centralized tracking, while Gmail notifications keep stakeholders informed. Critical alerts route to HR teams via Slack integration, ensuring immediate visibility into high-priority candidates and assessment bottlenecks, dramatically reducing time-to-hire while improving evaluation consistency. Setup Steps Configure OpenAI API key for GPT-4 powered candidate sourcing and interview agents Link Anthropic Claude API for competency assessment modules Authorize Google Sheets access and specify target spreadsheet/worksheet for candidate data Set up Gmail integration with sender email and recipient distribution lists Connect Slack workspace and configure target channel for priority notifications Customize assessment criteria in Former Analytics Agent node based on role requirements Prerequisites Developer account with API access, OpenAI API key (GPT-4 enabled) Use Cases High-volume technical recruitment campaigns requiring standardized assessment frameworks Customization Modify AI agent prompts to align with specific role competencies Benefits Reduces time-to-hire by 60% through parallel AI assessments
by Abdallah Hussein
Who this template is for This template is designed for n8n users running workflows in production who need reliable and structured error monitoring, not just basic alerts. It’s especially useful for: Automation engineers and developers Teams running business-critical workflows Anyone who wants smarter alerting with reduced noise What this workflow does This workflow acts as a global, severity-based error monitoring system for n8n. When a linked workflow fails, it automatically: Classifies the error by severity (Critical, High, Normal) Routes alerts based on severity level Sends notifications via Telegram and Email Logs critical errors for auditing and troubleshooting This ensures important issues are escalated properly, while avoiding unnecessary alert fatigue. How it works An Error Trigger captures execution failures from linked workflows. A Code node analyzes the error and assigns a severity level. Alerts are routed based on severity: 🔴 Critical → Email + Telegram + Logging 🟠 High → Telegram alert 🟡 Normal → Telegram alert All alerts include rich context such as workflow name, failed node, execution time, and execution URL. The workflow only runs when an error occurs. How to set up Configure the required credentials (Telegram, Email, optional Google Sheets). Replace placeholder values such as: YOUR_TELEGRAM_CHAT_ID YOUR_ALERT_EMAIL Activate this workflow. Open any workflow you want to monitor. In Workflow Settings, set Error Workflow to this workflow. Save and test by triggering an error. Requirements An active n8n instance (cloud or self-hosted) Telegram Bot credentials Email credentials (for critical alerts) Optional: Google Sheets credentials for logging How to customize the workflow You can extend this workflow by: Adding more alert channels (Slack, Discord, etc.) Adjusting severity classification logic Implementing rate-limiting or noise reduction Logging errors to databases or external monitoring tools Detailed instructions and explanations are included inside the workflow using sticky notes.
by Tricore Infotech Pvt Ltd
Quick overview This workflow runs daily to calculate Shopify product sales velocity, predict days until stockout, and alert on low inventory. It logs alerted variant IDs to Google Sheets to avoid duplicate notifications, then sends a Slack summary and a detailed HTML email via Gmail, with Slack error alerts. How it works Runs every day at 7:00 AM UTC on a schedule. Loads configuration values and reads the existing alert log from Google Sheets for deduplication. Fetches recent paid Shopify orders from the configured lookback window and retrieves all active Shopify products and variants with inventory tracking. Calculates per-variant daily sales velocity, estimates days of stock remaining, categorizes urgency, and skips variants already alerted for the current UTC date. Appends the newly alerted variant IDs and run metadata to Google Sheets as an alert log. Posts a Slack message with the urgency breakdown and predicted depletion timelines. Generates an HTML table report and sends it to the configured recipient using Gmail. If the workflow fails at any point, sends the failed node name and error message to Slack via the global error trigger. Setup Connect Shopify OAuth2 credentials in n8n and ensure your store has access to Orders and Products APIs. Create a Google Sheet with headers runTimestamp, variantIds, and totalVariantsAlerted, connect Google Sheets OAuth2 credentials, and paste the sheet URL into the configuration. Connect Slack API credentials, set the Slack channel ID in the configuration (and select a channel for the error-alert Slack node), and connect Gmail OAuth2 credentials for sending email. Update daysToCalculateVelocity, recipientMail, googleSheetUrl, and slackEscalationChannel in the configuration, then adjust the schedule time if needed. Requirements n8n Version:** 2.20 or higher Shopify Store:** An active Shopify store with API access Accounts Needed:** Shopify, Google Sheets, Gmail, Slack Google Sheet:** Set up in advance with the 3 required column headers (see Step 2 above) Customization Adjust the Velocity Window:** Change the daysToCalculateVelocity in the config node (e.g., to 14 or 30 days) if you sell slower-moving goods and need a wider average. Tweak Urgency Thresholds:** Open the Calculate Velocity & Depletion node and modify the THRESHOLDS variable to match your supply chain lead times (e.g., change "Critical" from 2 days to 14 days if your supplier takes two weeks to ship). Send to More People:** Add multiple emails to the Gmail node separated by commas, or use a distribution email address. Automate Reorders:** Add a Shopify node to the end of the workflow to automatically create a "Draft Order" for any items that hit the Critical threshold.
by Avkash Kakdiya
How it works This workflow automatically handles every Mailchimp unsubscribe event by capturing the contact details, syncing the status to HubSpot, alerting the team on Slack, logging the record to Google Sheets, and sending the user a confirmation email — all without any manual effort. Step-by-step Trigger & normalize** Mailchimp — Unsubscribe Trigger – Listens for unsubscribe events on a Mailchimp audience list. Set — Normalize & Enrich Data – Parses and normalizes the raw Mailchimp payload across all supported formats, extracting email, first name, last name, phone, address, list name, unsubscribe reason, campaign ID, member rating, and formatted timestamps. CRM sync** HubSpot — Search Contact by Email – Searches HubSpot for an existing contact matching the unsubscribed email address. IF — Contact Exists in HubSpot? – Routes to update or create based on whether a matching contact is found. Update HubSpot Contact – Marks the existing contact as Unsubscribed, sets the email opt-out flag, and records the unsubscribe source, date, reason, campaign ID, and Mailchimp list ID. Create HubSpot Contact – Creates a new HubSpot contact with full unsubscribe details and opt-out status if no existing contact is found. Payload preparation** Set — Prepare Slack Payload – Consolidates the HubSpot contact ID with all normalized unsubscribe data into a single clean object for downstream nodes. Team notifications** Slack — Alert – Posts an instant unsubscribe alert to the marketing Slack channel with the contact's name, email, audience, and timestamp. Slack — Log to – Posts a detailed CRM audit log entry including HubSpot contact ID, campaign ID, unsubscribe reason, and processing timestamp. Logging & confirmation** Store Unsubscribe Details in Sheet – Appends a full unsubscribe record to Google Sheets including email, name, audience, reason, campaign ID, HubSpot contact ID, member rating, and timestamp. Send a confirmation email – Sends a plain-text Gmail confirmation to the unsubscribed user acknowledging their removal from the list. Completion log** Set — Workflow Completion Log – Records a final summary of all completed actions, processing timestamp, and workflow status for monitoring and audit purposes. Why use this? Instantly syncs every Mailchimp unsubscribe to HubSpot so CRM contact status is always accurate and compliant Automatically creates new HubSpot contacts for unsubscribers who don't yet exist in the CRM Keeps the marketing team informed in real time with Slack alerts and a separate audit log channel Logs every unsubscribe event to Google Sheets for trend analysis, compliance reporting, and list health tracking Sends users an automatic confirmation email so every unsubscribe request is professionally acknowledged