by Rahul Joshi
📄 Description This workflow helps users track and understand the performance of their stock portfolio in an automated and structured way. It reads portfolio holdings from Google Sheets, fetches the latest market prices, calculates key performance metrics, and updates the results back into the same sheet. In addition to standard return calculations, the workflow also classifies each holding based on overall performance and risk, making the output more actionable and easier to interpret. The workflow is designed for investors who want a simple, repeatable way to monitor portfolio performance without manual calculations. ⚙️ What This Workflow Does Reads portfolio holdings (stock, buy price, quantity, buy date) from Google Sheets Fetches daily stock price data using Alpha Vantage Calculates key metrics: Invested Value Current Value Profit & Loss (P&L) P&L Percentage CAGR Maximum Drawdown Classifies each holding as Healthy, Watch, or Risk based on return and drawdown Updates the same Google Sheet with the latest results Runs automatically on a schedule ✅ Key Benefits Eliminates manual portfolio tracking and calculations Provides clear performance and downside risk visibility Adds a simple decision layer through portfolio status classification Keeps all portfolio data in one place (Google Sheets) Dashboard-ready output for further analysis or visualization 🧩 Features Scheduled portfolio evaluation Daily market price data from Alpha Vantage Deterministic, explainable financial calculations Simple risk and performance classification logic Google Sheets-based input and output Clean, update-in-place data handling (no duplicate rows) 🔐 Requirements Alpha Vantage API key (for market price data) Google Sheets OAuth credentials An n8n instance (cloud or self-hosted) 🎯 Target Audience Retail investors tracking long-term portfolios Finance teams maintaining internal portfolio dashboards Automation builders creating investment-related workflows Users looking for a simple, explainable portfolio monitoring setup
by Kamran habib
| N8N Workflow | AI Reddit Problem Detection & Auto-Solution Commenter 🤖 This n8n workflow automates Reddit community engagement by detecting posts that discuss problems and automatically replying with AI-generated solutions — powered by Google Gemini. It’s designed for developers, automation creators, and brands who want to provide helpful, automated responses to Reddit users discussing issues in their niche. How It Works The workflow starts with a Manual Trigger (When clicking ‘Execute workflow’). Search for a Post: It scans the r/n8n subreddit (or any subreddit you set) for recent posts containing the keyword “Why I stopped using”. Filter Posts (If Node): Filters posts that have 2 or more upvotes and non-empty text, ensuring only quality discussions are analyzed. Edit Fields: Extracts post details such as title, body text, upvotes, creation time, and subreddit ID for AI processing. AI Agent + Google Gemini Chat Model: The first AI node analyzes the post and decides whether it’s describing a problem or frustration related to AI automation. Gemini responds with “Yes” or “No.” Conditional Branch (If1 Node): If “Yes,” the post is confirmed as discussing a problem. The workflow then triggers the second AI Agent. AI Agent 2 + Gemini: The second AI node uses Gemini to generate a helpful and concise solution addressing the issue mentioned in the Reddit post (for example, offering a fix, suggestion, or new idea). Merge & Log Data: The AI’s findings (post details + solution) are merged and saved into a connected Google Sheet for tracking community insights. Comment on Reddit: The workflow automatically posts the AI-generated solution as a comment reply on the original Reddit thread, engaging users directly. How To Use Import the provided JSON workflow into your n8n dashboard. Set up the required credentials: Reddit OAuth2 API – for searching and posting comments. Google Gemini (PaLM) API – for AI text analysis and solution generation. Google Sheets API – for logging post data and AI results. Adjust the subreddit name, search keyword, or prompts to fit your niche. Click Execute Workflow to run the automation. Requirements Reddit Developer Account (OAuth2 credentials). Google Gemini (PaLM) API account for AI processing. Google Sheets account for saving analysis results. How To Customize Change the search keyword (e.g., “help with automation,” “issue with API,” etc.). Modify the AI prompts to tailor the solution style (technical, friendly, educational, etc.). Edit the Google Sheet fields to capture more or fewer details. Enable/disable the comment node if you want to manually approve replies before posting. Adjust the Gemini model name (e.g., models/gemini-2.0-flash) or parameters for faster or more creative responses.
by RamK
Monitor GitHub Repositories for Unauthorized Actions How it works: This workflow monitors GitHub for high-risk activities to ensure that only authorized users can modify the repository. It periodically polls GitHub for events such as PushEvent, MemberEvent, and PublicEvent. For each event, the workflow extracts the username of actor and looks it up in the it_whitelist data table to determine the user’s role. A Switch node then routes the event to the appropriate validation logic. • Member & Public events: Only users with the admin role are allowed. Any non-admin action such as adding a repository member or changing a private repository to public triggers an alert. • Push events: The user must exist in the whitelist. If no role is found, the user is treated as unknown and flagged. All unauthorized actions are reported to Slack, including the event type, actor name, and repository details. Setup steps: Credentials: Connect your GitHub Personal Access Token and Slack Bot Token. Create a Data Table named it_whitelist with columns github_username and role. Add your GitHub username with the role admin to prevent self-alerts. Accordingly, add other developers and members in your organization with appropriate roles to white list them. Switch Configuration: Use the expression {{ $item.json.type }} in 'Rules' mode to route events. Logic: Configure the PushEvent IF node to flag users whose role is empty or missing. Configure the Member and Public IF nodes to flag users whose role is not admin.
by ChatPayLabs
Workflow Name: 👻 Exception Flow Template was created in n8n v1.90.2 Skill Level: Low Categories: n8n, Chatbot Stacks Error Trigger Slack node What this workflow does? This is a n8n Error Workflow. It will trigger when there is an error in another workflow. When this happens, it then tries to send an error notification to the preset Slack channel. How it works The Error Trigger node will trigger when there is an error in another workflow, as long as that workflow is set up to do so. A error notification will be sent to the Slack Channel. Set up instructions Create you Slack credentials, refer to n8n integration documentation for more information. Set up the Channel in 👻 Exception Alert node. For any n8n workflows to trigger this, switch to that workflow, select menu > settings, and set the Error Workflow to 👻 Exception Flow. How to adjust it to your needs Although this workflow template is part of the AI Chatbot Call Center Series, it could be used with any n8n workflows. Update the Channel in 👻 Exception Alert to your own channel https://chatpaylabs.com/blog/part-8-build-your-own-ai-chatbot-call-center-general-exception-flow-production-ready-n8n-workflow-free-download-
by n8n Automation Expert | Template Creator | 2+ Years Experience
🌦️ Intelligent Aquaculture Automation for Indonesia Transform your fish farming operation with this cutting-edge n8n workflow that combines Indonesia's official BMKG weather data with IoT-powered feeding automation. This system intelligently reduces feed by 20% when rain probability exceeds 60%, preventing overfeeding during adverse weather conditions that could compromise water quality and fish health. 🚀 Key Features 🌦️ Real-time BMKG Integration: Fetches official Indonesian weather forecasts every 12 hours using BMKG's public API with precise ADM4 regional targeting 🤖 Smart Decision Engine: Advanced JavaScript algorithms analyze 6-hour and 12-hour rain probabilities to make optimal feeding decisions automatically 📱 ESP8266 IoT Control: Seamlessly sends HTTP webhook commands to your ESP8266/ESP32-based fish feeder hardware with JSON payloads 💬 Rich Telegram Notifications: Comprehensive reports including weather analysis, feeding decisions, hardware status, and next feeding schedule ⏰ Precision Scheduling: Automated execution at 05:30 and 16:30 WIB (Indonesian Western Time) with cron-based triggers 📊 Activity Logging: Complete audit trail with timestamps, weather data, and feeding decisions for operational monitoring 🛠️ Technical Architecture Core Node Components: Schedule Trigger:** Automated twice-daily execution HTTP Request:** BMKG API integration with timeout handling Code (JavaScript):** Weather parsing and feeding ratio calculations IF Condition:** Intelligent branching based on configurable rain thresholds Telegram:** Formatted notifications with markdown support Set Variables:** Secure credential management with placeholder tokens 📋 Prerequisites ✅ n8n Instance: Self-hosted or cloud deployment ✅ Telegram Bot: Create via @BotFather for notifications ✅ ESP8266/ESP32: Hardware with servo motor for automated feeding ✅ Arduino Skills: Basic programming knowledge for hardware setup ✅ Indonesian Location: Uses BMKG API with ADM4 regional codes ⚙️ Configuration Requirements 📍 Location Settings: Update latitude, longitude, and BMKG ADM4 code in the Config node 🤖 Telegram Bot: Configure bot token and chat ID in credentials 🔗 ESP8266 Webhook: Set your device's IP address for hardware communication 📊 Feeding Parameters: Customize rain threshold (default: 60%) and feed reduction (default: -20%) 🎯 Perfect For 🏭 Commercial Aquaculture: Large-scale fish farming operations requiring weather-aware feeding 🏠 Hobbyist Enthusiasts: Home aquarium and pond automation projects 🌱 Smart Agriculture: Integration with comprehensive farm management ecosystems 🔧 IoT Learning: Educational platform for weather-based automation development 🌍 Environmental Research: Combining meteorological data with livestock care protocols 📊 Rich Output Examples The workflow generates detailed Telegram reports featuring: Current Weather Analysis:** 6-hour and 12-hour rain probability breakdowns Feeding Decision Logic:** Clear rationale for feed adjustments with percentages Hardware Confirmation:** ESP8266 response status and command execution verification Schedule Preview:** Next automated feeding time with countdown Historical Logs:** Comprehensive activity tracking for pattern analysis 🔧 Hardware Integration Guide Designed for ESP8266-based feeders accepting HTTP POST commands. The workflow transmits structured JSON containing: { "command": "FEED_REDUCE_20", "feed_ratio": -20, "rain_prob": 75, "timestamp": "2024-09-18T10:30:00Z", "location": "Main Pond" } 🌍 Regional Adaptation Indonesia-Optimized: Built specifically for BMKG's official weather API with ADM4 regional precision Global Compatibility: Easily adaptable for international weather services by modifying HTTP requests and parsing logic Scalable Architecture: Supports multiple pond locations with separate ADM4 configurations 🔒 Security & Credentials All API keys use {{PLACEHOLDER}} format for secure credential management No hardcoded sensitive information in workflow nodes Telegram bot tokens managed through n8n's credential system ESP8266 webhooks support local network security 📈 Performance Benefits 20% Feed Optimization:** Automatic reduction during high rain probability periods Water Quality Protection:** Prevents overfeeding that degrades aquatic environment Cost Efficiency:** Reduces feed waste while maintaining fish health 24/7 Monitoring:** Continuous weather analysis without manual intervention Scalable Operations:** Supports multiple feeding locations from single workflow
by Harshil Agrawal
This workflow allows you to create, update and get a task in Microsoft To Do. Microsoft To Do node: This node will create a task with the importance High in the Tasks list. You can select a different list as well as the importance level. Microsoft To Do1 node: This node will update the status of the task that we created in the previous node. Microsoft To Do2 node: This node will get the task that we created earlier.
by Mohammad
🔐 Human-in-the-Loop Approval Flow (n8n + Postgres + Telegram) 👥 Who’s it for Teams that need a manager approval step before a ticket or request can change status. Great for internal ops, IT requests, or any workflow where “a human must sign off.” ⚡ What it does 📨 Manager receives approval/reject link 🔑 Link is signed with HMAC + expiry (secure & tamper-proof) 🗄️ Postgres updates the ticket status 📝 Audit trail records every decision 📲 Telegram notifies both manager and requester ⏰ Expired or invalid links trigger alerts and logs 🛠 Requirements n8n instance (self-hosted) Postgres database (with tickets, ticket_audit, workflow_errors) Telegram bot token One environment variable set: SECRET_KEY ⚙️ How to set up Set SECRET_KEY in .env Create Postgres tables (SQL provided) Add Telegram + Postgres credentials in n8n Import the workflow JSON Test by opening an approval/reject link in your browser 🎨 How to customize Change who the “manager” is (currently hardcoded in the Code node). Swap Telegram for Slack or email notifications. Extend the audit schema to include more metadata (IP, username).
by Rahul Joshi
📊 Description Automate your entire email experimentation workflow with this AI-powered A/B testing orchestrator 🚀. This n8n automation generates two intelligent email variants using AI, sends campaigns through Mailjet, continuously tracks engagement performance, and automatically determines the winning version using statistical significance testing 📧🤖. The workflow also logs every experiment inside Notion for centralized reporting and audit tracking. Perfect for marketing teams looking to optimize open rates and click-through rates without manual analysis or campaign monitoring. What This Template Does 📥 Monitors new A/B test requests submitted through Google Sheets. 🔍 Validates campaign details like hypothesis, metric, audience size, and subject line. 🤖 Uses Gemini AI to generate two unique email variants for testing. 📦 Formats both variants into Mailjet-ready email payloads automatically. 📧 Sends Variant A and Variant B campaigns via Mailjet. 🔗 Captures campaign IDs and stores test metadata for tracking. 📓 Logs all experiments, rationales, and campaign details into Notion. ⏰ Runs scheduled polling to collect email engagement performance daily. 📊 Performs Chi-Squared statistical significance testing on campaign results. 🏆 Automatically declares the winning email variant or extends the test if results are inconclusive. 🗑️ Archives losing campaigns and updates final experiment outcomes in Notion. Key Benefits ✅ Fully automates end-to-end email A/B testing workflows ✅ Uses AI to generate high-converting email copy variations ✅ Eliminates manual campaign analysis and winner selection ✅ Applies statistical significance testing for reliable decisions ✅ Centralizes campaign tracking and reporting in Notion ✅ Helps marketing teams improve open and click-through rates faster Features AI-powered email copy generation with Gemini Automated Mailjet campaign creation and delivery Google Sheets-based campaign intake system Statistical Chi-Squared significance testing Daily automated campaign performance polling Automated winner detection and decision routing Notion integration for experiment logging and audit history Dynamic email payload formatting and validation Scheduled workflow execution using n8n triggers Autonomous campaign lifecycle management Requirements Mailjet API credentials Google Sheets account and trigger access Notion API credentials Google Gemini API access n8n instance (cloud or self-hosted) Target Audience 📈 Email marketing teams running frequent campaigns 🚀 SaaS companies optimizing onboarding and retention emails 🛍️ E-commerce brands improving promotional email performance 🤖 Growth and automation teams building autonomous marketing systems
by Nima Salimi
Overview This n8n workflow automatically retrieves Brevo contact reports and inserts summarized engagement data into NocoDB. It groups campaign activity by email, creating a clean, unified record that includes sent, delivered, opened, clicked, and blacklisted events. This setup keeps your CRM or marketing database synchronized with the latest Brevo email performance data. ✅ Tasks ⏰ Runs automatically on schedule or manually 🌐 Fetches contact activity data from Brevo API 🧩 Groups all campaign activity per email 💾 Inserts summarized data into NocoDB ⚙️ Keeps engagement metrics synced between Brevo and NocoDB 🛠 How to Use 🧱 Prepare your NocoDB table Create a table with fields for: email, messagesSent, delivered, opened, clicked, done, and blacklisted. 🔑 Connect your Brevo credentials Add your Brevo API Key in the HTTP Request node to fetch contact data securely. 🧮 Review the Code Nodes These nodes group contact activity by email and prepare a single dataset for insertion. 🚀 Run or schedule the workflow Execute it manually or use a Schedule Trigger to automate the data sync process. 📌 Notes 🗂 Make sure the field names in NocoDB match those used in the workflow. 🔐 Keep your Brevo API Key secure and private. ⚙️ The workflow can be expanded to include additional fields or filters. 📊 Use the data for engagement analytics, segmentation, or campaign performance tracking.
by Rapiwa
Who Is This For? This n8n automation workflow is designed for customer support teams, business owners, or service providers who want to automate customer interactions on WhatsApp. If you regularly receive customer queries about your products, services, or technical issues — and need a system that can instantly respond, fetch data from Google Sheets or Docs, log support tickets, and send human-like replies — this workflow is for you. It’s perfect for teams using Rapiwa, Google Sheets, and Google Docs who want to provide a smart, AI-driven, yet personal support experience. What This Workflow Does This workflow is structured around a single intelligent AI assistant called Rapiwa that interacts with customers in real time through WhatsApp. Key Features AI-Driven Support Assistant (Rapiwa) WhatsApp Integration via Rapiwa API Dynamic Data Access (Google Sheets + Docs) Knowledge Base Search Conversation Memory Automatic Logging Multi-Product Support Workflow Overview Rapiwa Trigger (Start Node) Starts the workflow automatically whenever a new WhatsApp message is received in your Rapiwa account. Example: When a customer sends a message like “What’s the price of SocialVibe?” or “I can’t access my dashboard”, this node triggers the workflow. If (Check Text) Detects if the incoming message contains text (not just images, videos, or audio). If it’s text, the workflow continues; otherwise, it stops or handles it differently. AI Agent – Customer Support Agent This is the brain of the system — your AI Assistant (Rapiwa). Interprets the user’s question, retrieves information, and replies in a clear, WhatsApp-friendly format. Reads product details and company info from Google Sheets/Docs. Fetches documentation links from the connected “Support Desk” and product-specific HTTP tools. Logs customer issues to the support sheet for tracking and analysis. Memory (Session Context) Stores chat history per user session so Rapiwa remembers context during a conversation. Research (AI Support Tool) Acts as Rapiwa’s research assistant — gathers and organizes information from multiple sources. Sources: Google Sheets, Google Docs, HTTP Tools, and Support Desk. Replay (Rapiwa Send Message) Sends the AI’s final message back to the customer on WhatsApp using the Rapiwa API. WhatsApp-optimized plain text messages only. Data & Integrations 🔹 Google Sheets (Database) Product Data Sheet:** Holds product names, descriptions, and pricing. Service Data Sheet:** Lists offered services with details. Support Log Sheet:** Records each issue (Issue, Category, Solution). 🔹 Google Docs Provides company information when a user asks about your organization. Example Use Case User Message: > “Hi, I’m having a problem with my Faculty login.” Rapiwa’s AI Response: > “I’m sorry you’re having trouble logging in to Faculty. Please try resetting your password here: https://faculty.spagreen.net/docs/#reset-password > If the issue continues, I can log this for support. Would you like me to do that?” Useful Links install process:** how to install rapiwa Dashboard:** https://app.rapiwa.com Official Website:** https://rapiwa.com Documentation:** https://docs.rapiwa.com Support & Help WhatsApp**: Chat on WhatsApp Discord**: SpaGreen Community Facebook Group**: SpaGreen Support Website**: https://spagreen.net Developer Portfolio**: Codecanyon SpaGreen
by Yashraj singh sisodiya
Summarize YouTube Videos with Gemini AI, Google Sheets & WhatsApp/Telegram Aim The aim of the YouTube Video Summarizer Workflow is to automate the process of summarizing or extracting transcripts from YouTube videos with the help of Gemini AI, while optionally storing results and distributing them to users via WhatsApp, Telegram, or Google Sheets. This enables fast, consistent generation and sharing of English summaries or transcripts from public YouTube content. Goal The goal is to: Allow users to submit a YouTube link through various channels (Form Webhook, WhatsApp, Telegram). Use Gemini AI to either summarize the content or transcribe the complete video, always outputting in English. Return the output to the user via their original channel and optionally log it to Google Sheets for record-keeping. Requirements The workflow relies on specific integrations and configurations: n8n Platform**: Self-hosted or cloud n8n instance to host and automate the workflow. Node Requirements**: Form/Webhook Trigger: Web form for pasting the YouTube link. WhatsApp Trigger: Starts workflow from incoming WhatsApp messages (YouTube link as input). Telegram Trigger: Initiates workflow from Telegram chat messages containing YouTube links. Gemini AI Node: Consumes the YouTube link and processes it for summarization or transcription (always in English). Google Sheets Node: Writes the result (summary/transcript) into a Google Sheet for logging and future reference. WhatsApp/Telgram Send Message Nodes: Delivers summarized results or transcripts back to the user on the same platform where they triggered the workflow. Credentials**: Gemini/Google AI Platform account for AI summarization and transcription. Google Sheets account for storing output. WhatsApp Business API for WhatsApp automation. Telegram Bot API for Telegram automation. Input Requirements**: Publicly-accessible YouTube video link (max ~30 min, as per summarized logic). Output**: English video summary or full transcript, delivered via user’s requested channel and/or stored in Google Sheets. API Usage The workflow integrates several APIs for optimal automation: Gemini AI API**: Used in the main summarization node. Receives the YouTube link and a prompt with detailed instructions. Returns either a clear, concise English summary or a full transcript translated into English, handling Hindi, English, or mixed-language videos. [Ref: Workflow JSON] Google Sheets API**: Used to log the output for each processed video, making it easy to reference histories or track requests. [Ref: Workflow JSON] WhatsApp Business API**: Sends back the summary or transcript to the user who initiated via WhatsApp. [Ref: Workflow JSON] Telegram Bot API**: Sends results back to Telegram users directly in chat. [Ref: Workflow JSON] Output Formatting/Conversion The AI output is always in English, tailored to the option chosen (summary vs transcript). Structured output: Bulleted, neutral, and easy to read, suitable for sharing with users or for business documentation. Google Sheets node maps and writes each video’s results to a dedicated row for easy history review. How to Use By default, the workflow uses a manual trigger via a web form, but you may add triggers for WhatsApp or Telegram to suit your needs. Users paste a YouTube link, then select whether they want a summary or transcript (based on your implementation logic). Results are returned in their channel and optionally logged to your Google Sheet. All processing is handled securely using your Gemini API credentials. You can expand this logic by adding more integrations (email, Slack, etc.). Customising this Workflow Custom prompts can be written for different styles or output formats (e.g., SEO key points, step-by-step guides). Add logic for batch processing multiple videos or bulk export to different cloud drives. Integrate into central dashboards, CRMs, or content pipelines using n8n’s hundreds of available integrations. Good to Know Gemini pricing:** At the time of writing, each YouTube video summarization costs $0.039 USD. See official Gemini Pricing for current rates. Geo-restriction:** The Gemini video model may be geo-restricted (error: “model not found” outside some regions). Video Limits:** Intended for videos up to ~30 minutes for best processing reliability. Scaling:** Can be easily adapted for high-volume operations using n8n’s queue and scheduling features. Workflow Summary The YouTube Video Summarizer Workflow automates summarizing and transcribing YouTube videos using AI and n8n. Users send video links via web forms, WhatsApp, or Telegram. Results are generated via Gemini, sent back in-app, and logged to Google Sheets, enabling effortless knowledge sharing and organizational automation at scale. Timestamp: 12:37 PM IST, Wednesday, September 17, 2025
by Rahul Joshi
Description: Ensure your customer SLAs never slip with this n8n automation template. The workflow runs on a schedule, fetching open tickets from Zendesk, calculating SLA time remaining, and sending proactive alerts to Slack when tickets approach breach thresholds (75% and 90%). It also updates ticket priority in Zendesk and logs compliance metrics to Google Sheets for reporting. Perfect for support operations, CX teams, and SaaS companies looking to maintain SLA compliance and reduce response delays automatically. ✅ What This Template Does (Step-by-Step) ⏰ Run Every Hour: Automatically triggers every hour to check for SLA-sensitive tickets. 📥 Fetch All Open Zendesk Tickets: Pulls all tickets via the Zendesk API, returning essential fields: ID, status, created_at, sla_due, and priority. 🔍 Filter Only “Open” Tickets: Excludes closed, on-hold, or pending tickets — monitoring focuses only on actionable cases. ⏱️ Calculate SLA Time Remaining: Computes total SLA duration, remaining minutes, and % of SLA consumed for each ticket. 🟡 Warn at 75% Threshold: When 75% of the SLA window has passed, automatically sends a Slack warning to the #general-information channel. 🔴 Escalate at 90% Threshold: For tickets nearing breach (≥90%), the workflow updates Zendesk ticket priority to “High,” adds escalation notes, and notifies the support team for immediate action. 📊 Log SLA Compliance in Google Sheets: Each ticket’s SLA metrics (ID, % elapsed, time remaining, timestamp) are appended to a Google Sheet for tracking and reporting. ✅ No-Ticket Confirmation: If no open tickets exist, the workflow posts a “✅ No open tickets” message to Slack — keeping teams informed of a clear queue. 🧠 Key Features ⏱️ Automated SLA tracking and escalation 📊 Real-time logging to Google Sheets ⚡ Hourly auto-trigger — no manual checks needed 📢 Slack alerts at warning and critical thresholds 🔄 Dynamic Zendesk ticket updates via API 💼 Use Cases 💬 Proactively manage customer support SLAs 🚨 Automatically escalate critical tickets before breach 📈 Maintain transparent SLA compliance reporting 📢 Keep your support team updated in real time 📦 Required Integrations Zendesk API – for ticket retrieval and updates Slack API – for alert notifications Google Sheets – for compliance and reporting logs 🎯 Why Use This Template? ✅ Prevent SLA breaches before they happen ✅ Automate escalation and communication ✅ Provide real-time visibility to support leads ✅ Build a historical SLA performance dataset