by Marth
How It Works: The 5-Node Monitoring Flow This concise workflow efficiently captures, filters, and delivers crucial cybersecurity-related mentions. 1. Monitor: Cybersecurity Keywords (X/Twitter Trigger) This is the entry point of your workflow. It actively searches X (formerly Twitter) for tweets containing the specific keywords you define. Function:** Continuously polls X for tweets that match your specified queries (e.g., your company name, "Log4j," "CVE-2024-XXXX," "ransomware"). Process:** As soon as a matching tweet is found, it triggers the workflow to begin processing that information. 2. Format Notification (Code Node) This node prepares the raw tweet data, transforming it into a clean, actionable message for your alerts. Function:** Extracts key details from the raw tweet and structures them into a clear, concise message. Process:** It pulls out the tweet's text, the user's handle (@screen_name), and the direct URL to the tweet. These pieces are then combined into a user-friendly notificationMessage. You can also include basic filtering logic here if needed. 3. Valid Mention? (If Node) This node acts as a quick filter to help reduce noise and prevent irrelevant alerts from reaching your team. Function:** Serves as a simple conditional check to validate the mention's relevance. Process:** It evaluates the notificationMessage against specific criteria (e.g., ensuring it doesn't contain common spam words like "bot"). If the mention passes this basic validation, the workflow continues. Otherwise, it quietly ends for that particular tweet. 4. Send Notification (Slack Node) This is the delivery mechanism for your alerts, ensuring your team receives instant, visible notifications. Function:** Delivers the formatted alert message directly to your designated communication channel. Process:* The notificationMessage is sent straight to your specified *Slack channel** (e.g., #cyber-alerts or #security-ops). 5. End Workflow (No-Op Node) This node simply marks the successful completion of the workflow's execution path. Function:** Indicates the end of the workflow's process for a given trigger. How to Set Up Implementing this simple cybersecurity monitor in your n8n instance is quick and straightforward. 1. Prepare Your Credentials Before building the workflow, ensure all necessary accounts are set up and their respective credentials are ready for n8n. X (Twitter) API:* You'll need an X (Twitter) developer account to create an application and obtain your Consumer Key/Secret and Access Token/Secret. Use these to set up your *Twitter credential** in n8n. Slack API:* Set up your *Slack credential* in n8n. You'll also need the *Channel ID** of the Slack channel where you want your security alerts to be posted (e.g., #security-alerts or #it-ops). 2. Import the Workflow JSON Get the workflow structure into your n8n instance. Import:** In your n8n instance, go to the "Workflows" section. Click the "New" or "+" icon, then select "Import from JSON." Paste the provided JSON code (from the previous response) into the import dialog and import the workflow. 3. Configure the Nodes Customize the imported workflow to fit your specific monitoring needs. Monitor: Cybersecurity Keywords (X/Twitter):** Click on this node. Select your newly created Twitter Credential. CRITICAL: Modify the "Query" parameter to include your specific brand names, relevant CVEs, or general cybersecurity terms. For example: "YourCompany" OR "CVE-2024-1234" OR "phishing alert". Use OR to combine multiple terms. Send Notification (Slack):** Click on this node. Select your Slack Credential. Replace "YOUR_SLACK_CHANNEL_ID" with the actual Channel ID you noted earlier for your security alerts. (Optional: You can adjust the "Valid Mention?" node's condition if you find specific patterns of false positives in your search results that you want to filter out.) 4. Test and Activate Verify that your workflow is working correctly before setting it live. Manual Test:** Click the "Test Workflow" button (usually in the top right corner of the n8n editor). This will execute the workflow once. Verify Output:** Check your specified Slack channel to confirm that any detected mentions are sent as notifications in the correct format. If no matching tweets are found, you won't see a notification, which is expected. Activate:** Once you're satisfied with the test results, toggle the "Active" switch (usually in the top right corner of the n8n editor) to ON. Your workflow will then automatically monitor X (Twitter) at the specified polling interval.
by Milan Vasarhelyi - SmoothWork
Video Introduction Want to automate your inbox or need a custom workflow? 📞 Book a Call | 💬 DM me on Linkedin Overview This workflow automatically exports customer balance data from QuickBooks to Google Sheets on a monthly basis. It eliminates manual data entry and creates a historical record of customer balances that updates automatically, making it easy to track payment trends, identify outstanding balances, and monitor customer financial health over time. Key Features Automated Monthly Reporting**: Runs on the first day of each month to capture a snapshot of all customer balances Clean Data Structure**: Extracts only the essential fields (Customer ID, Balance, Email, and Period) for easy analysis Historical Tracking**: Each monthly run appends new data to your Google Sheet, building a timeline of customer balances No Manual Work**: Once configured, the workflow runs completely hands-free Common Use Cases Track customer payment patterns and identify accounts with growing balances Create monthly reports for management or finance teams Build dashboards and visualizations from historical QuickBooks data Monitor customer account health without logging into QuickBooks Setup Requirements QuickBooks Developer Account: Register at developer.intuit.com and create a new app in the App Dashboard. Select the 'Accounting' scope for permissions. You'll receive a Client ID and Client Secret to configure your n8n credentials. Credentials: Set up QuickBooks OAuth2 credentials in n8n using your app's Client ID and Client Secret. Use 'Sandbox' environment for testing or 'Production' for live data (requires Intuit app approval). Also connect your Google Sheets account. Google Sheet: Create a spreadsheet with column headers matching the workflow output: Period, Id, Balance, and Email. Configuration Schedule**: The workflow runs monthly on the first day at 8 AM. Modify the Schedule Trigger to change timing or frequency Spreadsheet URL**: Update the 'Export to Google Sheets' node with your destination spreadsheet URL Data Fields**: Customize the 'Prepare Customer Data' node to extract different customer fields if needed
by Mohammed Abid
Shopify Order Data to Airtable This n8n template demonstrates how to capture incoming Shopify order webhooks, transform the data into a structured format, and insert each product line item as a separate record in an Airtable sheet. It provides both high-level order information and detailed product-level metrics, making it ideal for analytics, reporting, inventory management, and customer insights. Good to Know Airtable API Rate Limits: By default, Airtable allows 5 requests per second per base. Consider batching or adding delays if you process high volumes of orders. Shopify Webhook Configuration: Ensure you have configured the orders/create webhook in your Shopify Admin to point to the n8n webhook node. Field Mapping: The template maps standard Shopify fields; if your store uses custom order or line item properties, update the Function nodes accordingly. How It Works Webhook Trigger: A Shopify orders/create webhook fires when a new order is placed. Normalize Order Data: The Function node extracts core order, customer, shipping, and billing details and computes financial totals (subtotal, tax, shipping, discounts). Line Item Breakdown: A second Function node builds an array of objects—one per line item—calculating per-item totals, tax/shipping allocation, and product attributes (color, size, material). Check Customer Record: Optionally check against an Airtable "Customers" sheet to flag new vs existing customers. Auto-Increment Record ID: A Function node generates a running serial number for each Airtable record. Insert Records: The Airtable node writes each line item object into the target base and table, creating rich records with both order-level and product-level details. How to Use Clone the Template: Click "Use Template" in your n8n instance to import this workflow. Configure Credentials: Shopify Trigger: Add your Shopify store domain and webhook secret. Airtable Node: Set up your Airtable API key and select the base and table. Review Field Names: Match the field names in the Function nodes to the columns in your Airtable table. Activate Workflow: Turn on the workflow and place a test order in your Shopify store. Verify Records: Check your Airtable sheet to see the new order and its line items. Requirements n8n@latest Shopify Store with orders/create webhook configured Airtable Account with a base and table ready to receive records Customizing This Workflow Add Custom Fields: Extend the Functions to include additional Shopify metafields, discounts, or customer tags. Alternative Destinations: Replace the Airtable node with Google Sheets, Supabase, or another database by swapping in the corresponding node. Error Handling: Insert If/Wait nodes to retry on API failures or send notifications on errors. Multi-Currency Support: Adapt the currency logic to convert totals based on dynamic exchange rates.
by Trung Tran
AWS Certificate Manager (ACM) Auto-Renew with Slack notify & approval Who’s it for SRE/DevOps teams managing many ACM certs. Cloud ops who want hands-off renewals with an approval step in Slack. MSPs that need auditable reminders and renewals on schedule. How it works / What it does Schedule Trigger – runs daily (or your cadence). Get many certificates – fetches ACM certs (paginate if needed). Filter: expiring in next 7 days – keeps items where: NotAfter before today + 7d NotBefore before today (already valid) Send message and wait for response (Slack) – posts a certificate summary and pauses until Approve/Reject. Renew a certificate – on Approve, calls the renew action for the item. How to set up Credentials AWS in n8n with permissions to list/read/renew certs. Slack OAuth (bot in the target channel). Schedule Trigger Set to run once per day (e.g., 09:00 local). Get many certificates Region: your ACM region(s). If you have several regions, loop regions or run multiple branches. Filter (IF / Filter node) Add these two conditions (AND): {{ $json.NotAfter.toDateTime('s') }} is before {{ $today.plus(7,'days') }} {{ $json.NotBefore.toDateTime('s') }} is before {{ $today }} Slack → Send & Wait Message (text input): :warning: ACM Certificate Expiry Alert :warning: Domain: {{ $json.DomainName }} SANs: {{ $json.SubjectAlternativeNameSummaries }} ARN: {{ $json.CertificateArn }} Algo: {{ $json.KeyAlgorithm }} Status: {{ $json.Status }} Issued: {{ $json.IssuedAt | toDate | formatDate("YYYY-MM-DD HH:mm") }} Expires: {{ $json.NotAfter | toDate | formatDate("YYYY-MM-DD HH:mm") }} Approve to start renewal. Add two buttons: Approve / Reject (the node will output which was clicked). Renew a certificate Map the CertificateArn from the Slack Approved branch. Requirements n8n (current version with Slack Send & Wait). AWS IAM permissions (read + renew ACM), e.g.: acm:ListCertificates, acm:DescribeCertificate, acm:RenewCertificate (plus region access). Slack bot with permission to post & use interactivity in the target channel. How to customize the workflow Window size:** change 7 to 14 or 30 days in the filter. Catch expired: add an OR path {{ $json.NotAfter.toDateTime('s') }} is before {{ $today }} → send a **red Slack alert. Auto-renew w/o approval:** bypass Slack and renew directly for low-risk domains. Multiple regions/accounts:** iterate over a list of regions or assume roles per account. Logging:** add a Google Sheet/DB append after Slack click with user, time, result. Escalation:** if no Slack response after N hours, ping @oncall or open a ticket. Notes The Slack node pauses execution until a button is clicked—perfect for change control. Time conversions above assume NotAfter/IssuedAt are Unix seconds ('s'). Adjust if your data differs.
by Ossian Madisson
This n8n template makes it easy to perform DNS lookups directly within your n8n workflow using dns.google, without any API credentials. Use Cases Track changes:** Schedule execution and log DNS answers to track changes to records over time. Monitoring and alerts:** Schedule execution for DNS monitoring to detect misconfiguration and to trigger immediate alerts. Prerequisite checks:** Use in more extensive workflows to ensure DNS resolves correctly before running a website crawl or other sensitive tasks. Good to Know Requires no API credentials. You do not need to sign up for any third party service for DNS resolution. Can easily be modified to use with a webhook instead of the default Forms node for external triggering. By default performs lookup for: A CNAME AAAA MX TXT NS How It Works The workflow checks the input for a specified DNS type. If none is found, it uses all types in a predefined list. It splits the data into separate items for each DNS type. It loops through all items and executes DNS resolution via the highly reliable dns.google service. It aggregates all results into a single, easy-to-use output structure. How to Use Import the template and execute the workflow to enter the domain you want to look up in the Form interface. Connect the final output node to your specific use case (logging, alerting, subsequent workflow steps, etc.).
by Yves Tkaczyk
Use cases Ensure that the calls to the workflow's webhook are (a) originating from the correct GitHub repository and (b) haven't been tampered with. How it works When a secret is provided in a GitHub webhook configuration, a x-hub-signature-256 header is added to the webhook. Compute HMAC256 computes the HMAC256 signature similarly to how it was computed by GitHub. Validate HMAC256 tests for the equality of the computed value and the value provided by the header. If the values are equal then 200 is returned to GitHub and the workflow continues If the values are NOT equal then 401 is returned and the workflow ends. Note: The Stop and Error step is optional and can be removed. Removing it means that the workflow completes successfully while still returning 401 to GitHub. This means that you will not be able to easily track malicious or incorrect calls to your webhook from n8n. How to use Add the steps (1) and (2) of the workflow to your current workflow receiving webhook calls from GitHub. Update the Secret field in the Compute HMAC256 node with the same value as the secret stored in the Secret field in the GitHub webhook definition. Requirements GitHub account and repository. GitHub webhook setup with a Secret key. Key can be of any length and should be generated with a key or password generator. Who’s it for Developers or DevOps engineers who want to ensure secure webhook communication between GitHub and n8n. How to customize the workflow This is a building block for your own workflow. If you use this workflow as a base, replace step (3) with your own business logic. You can modify the Stop and Error node to log unauthorized requests or trigger alerts. ⚠️ Warning The secret is stored in plain text in the workflow. You should take this into consideration if the workflow is committed to source control or shared in any other way. Need Help? Reach out on LinkedIn or Ask in the Forum!
by Singgi Aditya
Attendance Telegram App with Google Sheets Manage employee attendance directly through Telegram with seamless Google Sheets integration. Employees can check in, check out, and view their daily attendance status from a Telegram bot. All records are stored in Google Sheets for easy tracking and reporting. 👉 Includes a Google Sheets template to get started quickly. ✨ Features 🕘 Check-in & Check-out via Telegram bot 📊 View daily attendance status (Check-in/Check-out done or not) 🔒 Employee validation – only registered employees can log attendance ⚠️ Duplicate prevention – prevents multiple check-ins/outs on the same day 📂 Google Sheets integration – easy to manage, export, and share data 🛠 Requirements n8n (Cloud or Self-hosted) A Telegram Bot (create via BotFather) Google Sheets account 🚀 Setup Instructions 1. Import Workflow Download and import Attendance Telegram App.json into n8n. Configure your Telegram API credentials. Configure your Google Sheets credentials. 2. Use Provided Google Sheets Template We provide a template with two sheets: Employee** → List of registered employees (id_employee, full_name, username_telegram) Attendance** → Attendance logs (date, time, attendance_type, etc.) 👉 Copy the Google Sheets Template Update the Employee sheet with your employee data before running the workflow. 3. Configure Telegram Bot Create a bot with BotFather on Telegram. Copy the API token. Add it into n8n’s Telegram credentials. 4. Run the Workflow Start the workflow. Open your Telegram bot and type /start or /menu. Available options: ✅ Check-in (⏰) 🚪 Check-out (🏁) 📊 View Today’s Attendance Status 📋 Example Flow User types /menu in Telegram. Bot displays menu with Check-in/Check-out and Today’s Attendance Status. If user taps Check-in: Workflow validates if they are a registered employee. Checks if attendance already exists for today. If valid → record in Google Sheets. Bot replies: “Check-in recorded. ⏰”
by Samir Saci
Tags*: Supply Chain, Inventory Management, ABC Analysis, Pareto Principle, Demand Variability, Automation, Google Sheets Context Hi! I’m Samir — a Supply Chain Engineer and Data Scientist based in Paris, and founder of LogiGreen Consulting. I help companies optimise inventory and logistics operations by combining data analytics and workflow automation. This workflow is part of our inventory optimisation toolkit, allowing businesses to perform ABC classification and Pareto analysis directly from their transactional sales data. > Automate inventory segmentation with n8n! 📬 For business inquiries, feel free to connect with me on LinkedIn Who is this template for? This workflow is designed for supply chain analysts, demand planners, or inventory managers who want to: Identify their top-performing items (Pareto 80/20 principle) Classify products into ABC categories based on sales contribution Evaluate demand variability (XYZ classification support) Imagine you have a Google Sheet where daily sales transactions are stored: The workflow aggregates sales by item, calculates cumulative contribution, and assigns A, B, or C classes. It also computes mean, standard deviation, and coefficient of variation (CV) to highlight demand volatility. How does it work? This workflow automates the process of ABC & Pareto analysis from raw sales data: 📊 Google Sheets input provides daily transactional sales 🧮 Aggregation & code nodes compute sales, turnover, and cumulative shares 🧠 ABC class mapping assigns items into A/B/C buckets 📈 Demand variability metrics (XYZ) are calculated 📑 Results are appended into dedicated Google Sheets tabs for reporting 🎥 Watch My Tutorial Steps: 📝 Load daily sales records from Google Sheets 🔎 Filter out items with zero sales 📊 Aggregate sales by store, item, and day 📈 Perform Pareto analysis to calculate cumulative turnover share 🧮 Compute demand variability (mean, stdev, CV) 🧠 Assign ABC classes based on cumulative share thresholds 📥 Append results into ABC XYZ and Pareto output sheets What do I need to get started? You’ll need: A Google Sheet with sales transactions (date, item, quantity, turnover) that is available here: Test Sheet A Google Sheets account connected in n8n Basic knowledge of inventory analysis (ABC/XYZ) Next Steps 🗒️ Use the sticky notes in the n8n canvas to: Add your Google Sheets credentials Replace the Sheet ID with your own sales dataset Run the workflow and check the output tabs: ABC XYZ, Pareto, and Store Sales This template was built using n8n v1.107.3 Submitted: September 15, 2025
by Evoort Solutions
Automated SEO Competitor Analysis with Google Sheets Logging Description: This n8n workflow automates SEO competitor analysis by integrating the Competitor Analysis API. It captures website domains via a simple user form, sends them to the API to retrieve competitor data, and logs the results directly into Google Sheets. The workflow intelligently handles empty or missing data and incorporates a wait node to respect API rate limits, making your competitor tracking seamless and reliable. Node-by-Node Explanation On Form Submission Triggers the workflow when a user submits a website domain. Global Storage Stores the submitted website domain for use in subsequent nodes. Competitor Analysis Request Sends a POST request to the Competitor Analysis API to fetch organic competitors, pages, and keyword data. If (Condition Check) Verifies that the API response contains valid, non-empty data. Google Sheets (Insert Success Data) Appends the fetched competitor data to a specified Google Sheet. Wait Node Adds a 5-second delay to avoid exceeding API rate limits. Google Sheets (Insert 'Not Found' Record) Logs a “Not data found.” entry into Google Sheets if the API response lacks relevant data. Use Cases & Benefits SEO Professionals:** Automate competitor insights collection for efficient SEO research. Marketing Teams:** Maintain consistent, automated logs of competitor data across multiple websites. Agencies:** Manage organic search competitor tracking for many clients effortlessly. Reliability:** Conditional checks and wait nodes ensure smooth API interaction and data integrity. Scalable & User-Friendly:** Simple form input and Google Sheets integration enable easy adoption and scalability. 🔐 How to Get Your API Key for the Competitor Keyword Analysis API Go to 👉 Competitor Keyword Analysis API Click "Subscribe to Test" (you may need to sign up or log in). Choose a pricing plan (there’s a free tier for testing). After subscribing, click on the "Endpoints" tab. Your API Key will be visible in the "x-rapidapi-key" header. 🔑 Copy and paste this key into the httpRequest node in your workflow. Create your free n8n account and set up the workflow in just a few minutes using the link below: 👉 Start Automating with n8n
by Evoort Solutions
🔍 SERP Keyword Ranking Checker with RapidAPI & Google Sheets Automate keyword SERP ranking lookups and log the data into Google Sheets using this no-code n8n workflow. Perfect for SEO professionals, digital marketers, or anyone tracking keyword visibility across regions. 🧰 Tools Used SERP Keyword Ranking Checker API – Fetch real-time keyword SERP data Google Sheets** – Log keyword data for tracking, analysis, or client reporting 📌 Workflow Overview User submits a keyword and country code via an n8n form Workflow sends a request to the SERP Keyword Ranking Checker API API response is checked: If valid data is found, it is logged to Google Sheets If no results are found, a fallback message is saved instead Optional delays added to space out operations ⚙️ Node-by-Node Breakdown 1. 🟢 Form Trigger: On form submission Accepts user input for: keyword (e.g. "labubu") country (e.g. "us") 2. 📦 Set Node: Global Storage Stores form input into variables (keyword, country) for use in API requests and logging. 3. 🌐 HTTP Request: SERP Keyword Ranking Checker Sends a POST request to the SERP Keyword Ranking Checker API with: keyword country Includes headers: x-rapidapi-host: serp-keyword-ranking-checker.p.rapidapi.com x-rapidapi-key: YOUR_RAPIDAPI_KEY 4. ⚖️ If Node: Condition Checking Checks whether the serpResults array returned by the API is non-empty. ✅ True Branch: Proceeds if valid SERP data is available. ❌ False Branch: Proceeds if no SERP data is returned (e.g., empty result). 5. ⏳ Wait Node: 5-Second Delay Adds a 5-second delay before proceeding to Google Sheets insertion. This helps control execution pace and ensures API rate limits or spreadsheet latency is handled smoothly. Used on both True and False branches for consistency. 6. 📊 Google Sheets (Success Path) Appends a new row into the selected Google Sheet with: Keyword – the submitted keyword Country – selected country code Json data – full serpResults JSON array returned by the API 💡 Ideal for tracking keyword rankings over time or populating live dashboards. 7. 📊 Google Sheets (Failure Path) Appends a fallback message into the Google Sheet when no SERP results are found. Keyword – the submitted keyword Country – selected country code Json data – "No result found. Please try another keyword..." 🔍 Helps maintain a log of unsuccessful queries for debugging or auditing. 💡 Use Cases SEO Audits** Automate keyword performance snapshots across different markets to identify opportunities and gaps. Competitor Analysis** Track keyword rankings of rival brands in real time to stay ahead of competition. Client Reporting** Feed live SERP data into dashboards or reports for transparent, real-time agency deliverables. Content Strategy** Discover which keywords surface top-ranking pages to guide content creation and optimization efforts. 🔑 How to Obtain Your API Key for SERP Keyword Ranking Checker API Sign Up or Log In Visit RapidAPI and create a free account using your email or social login. Go to the API Page Navigate to the SERP Keyword Ranking Checker APi. Subscribe to the API Click Subscribe to Test, then choose a pricing plan that fits your needs (Free, Basic, Pro). Get Your API Key After subscribing, go to the Security tab on the API page to find your X-RapidAPI-Key. Use Your API Key Add the API key to your HTTP request headers: X-RapidAPI-Key: YOUR_API_KEY Create your free n8n account and set up the workflow in just a few minutes using the link below: 👉 Start Automating with n8n
by WeblineIndia
This workflow sends a “Join in 10” Slack ping to each interviewer shortly before their interview starts. It checks the Interviews Google Calendar every minute, finds interviews starting in the next LEAD_MINUTES (default 10), and sends a Slack DM with the candidate name, role, local start time, meeting link, and any CV: / Notes: links present in the event description. If the Slack user can’t be found by email, it posts to a fallback channel (default #recruiting-alerts) with an @‑style email mention. A Data Store prevents duplicate pings for the same event + attendee. Who’s It For Interviewers who prefer a timely Slack nudge instead of calendar alerts. Recruiting coordinators who want consistent reminders without manual follow‑ups. Teams that include links directly in the calendar event description. How It Works Cron (every minute) polls near‑term events so pings arrive about 10 minutes before start. Google Calendar (Interviews) fetches upcoming events. Prepare pings filters interviews starting in ≤ LEAD_MINUTES, creates one item per internal attendee (company domain), and extracts meeting/CV/Notes links. Data Store checks a ledger to avoid re‑notifying the same event+attendee. Slack looks up the user by email and sends a DM with Block Kit buttons; otherwise posts to the fallback channel. Data Store records that the ping was sent. Attendees marked declined are skipped; accepted, tentative, and needsAction are included. How To Set Up Ensure interviews are on the Interviews Google Calendar and that interviewers are added as attendees. In each event’s description, optionally add lines like CV: https://... and Notes: https://.... Import the workflow and add credentials: Google Calendar (OAuth) Slack OAuth2 with users:read.email, chat:write, and im:write Open Set: Config and confirm: CALENDAR_NAME = Interviews COMPANY_DOMAIN = weblineindia.com TIMEZONE = Asia/Kolkata LEAD_MINUTES = 10 FALLBACK_CHANNEL = #recruiting-alerts Activate the workflow. It will begin checking every minute. Requirements Google Workspace calendar access for Interviews. Slack workspace + an app with the scopes: users:read.email, chat:write, im:write. n8n (cloud or self‑hosted) with access to both services. How to Customize the Workflow Lead time:* Change LEAD_MINUTES in *Set: Config** (e.g., 5, 15). Audience:** Modify attendee filters to include/exclude tentative or needsAction. Message format:** Tweak the Block Kit text/buttons (e.g., hide CV/Notes buttons). Fallback policy:** Switch the fallback from channel post to “skip and log” if needed. Time windows:** Add logic to silence pings at night or only during business hours. Calendar name:* Update CALENDAR_NAME in *Set: Config** if you use a different calendar. Add-Ons to level up the Workflow with additional nodes Conflict detector:** Warn if an interviewer is double‑booked in the next hour. Escalation:** If no DM can be sent (no Slack user), also notify a coordinator channel. Logging:** Append each ping to Google Sheets/Airtable for audit. Weekday rules:** Auto‑mute on specific days or holidays via a calendar/lookup table. Follow‑up:** Send a post‑interview Slack message with the feedback form link. Common Troubleshooting No pings:** Ensure events actually start within the next LEAD_MINUTES and that attendees include internal emails (@weblineindia.com). Wrong recipients:** Verify interviewer emails on the event match Slack emails; otherwise it will post to the fallback channel. Duplicate pings:* Confirm the *Data Store** is configured and the workflow isn’t duplicated. Missing meeting link:** Add a proper meeting URL to the event description or rely on Google Meet/Zoom links detected in the event. Time mismatch:** Make sure TIMEZONE is Asia/Kolkata (or your local TZ) and calendar times are correct. Need Help ? If you’d like a hand adjusting filters, message formatting or permissions, feel free to reach out we'll be happy to help you get this running smoothly.
by Avkash Kakdiya
How it works This workflow synchronizes support tickets in Freshdesk with issues in Linear, enabling smooth collaboration between support and development teams. It triggers on new or updated Freshdesk tickets, maps fields to Linear’s format, and creates linked issues through Linear’s API. Reverse synchronization is also supported, so changes in Linear update the corresponding Freshdesk tickets. Comprehensive logging ensures success and error events are always tracked. Step-by-step 1. Trigger the workflow New Ticket Webhook** – Captures new Freshdesk tickets for issue creation. Update Ticket Webhook** – Detects changes in existing tickets. Linear Issue Updated Webhook** – Listens for updates from Linear. 2. Transform and map data Map Freshdesk Fields to Linear** – Converts priority, status, title, and description for Linear. Map Linear to Freshdesk Fields** – Converts Linear state, priority, and extracts ticket ID for Freshdesk updates. 3. Perform API operations Create Linear Issue** – Sends GraphQL mutation to Linear API. Check Linear Creation Success** – Validates issue creation before linking. Link Freshdesk with Linear ID** – Updates Freshdesk with Linear reference. Update Freshdesk Ticket** – Pushes Linear updates back to Freshdesk. 4. Manage logging and errors Log Linear Creation Success** – Records successful ticket-to-issue sync. Log Linear Creation Error** – Captures and logs issue creation failures. Log Freshdesk Update Success** – Confirms successful reverse sync. Log Missing Ticket ID Error** – Handles missing ticket reference errors. Why use this? Keep support and development teams aligned with real-time updates. Eliminate manual ticket-to-issue handoffs, saving time and reducing errors. Maintain full visibility with detailed success and error logs. Enable bidirectional sync between Freshdesk and Linear for true collaboration. Improve response times by ensuring both teams always work on the latest data.