diff --git a/AI product imagines b/AI product imagines.json similarity index 100% rename from AI product imagines rename to AI product imagines.json diff --git a/AI_Research_RAG_and_Data_Analysis/Analyze tradingview.com charts with Chrome extension, N8N and OpenAI.txt b/AI_Research_RAG_and_Data_Analysis/Analyze tradingview.com charts with Chrome extension, N8N and OpenAI.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Analyze tradingview.com charts with Chrome extension, N8N and OpenAI.txt rename to AI_Research_RAG_and_Data_Analysis/Analyze tradingview.com charts with Chrome extension, N8N and OpenAI.json diff --git a/AI_Research_RAG_and_Data_Analysis/Automated Hugging Face Paper Summary Fetching & Categorization Workflow.txt b/AI_Research_RAG_and_Data_Analysis/Automated Hugging Face Paper Summary Fetching & Categorization Workflow.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Automated Hugging Face Paper Summary Fetching & Categorization Workflow.txt rename to AI_Research_RAG_and_Data_Analysis/Automated Hugging Face Paper Summary Fetching & Categorization Workflow.json diff --git a/AI_Research_RAG_and_Data_Analysis/Autonomous AI crawler.txt b/AI_Research_RAG_and_Data_Analysis/Autonomous AI crawler.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Autonomous AI crawler.txt rename to AI_Research_RAG_and_Data_Analysis/Autonomous AI crawler.json diff --git a/AI_Research_RAG_and_Data_Analysis/Build Your Own Image Search Using AI Object Detection, CDN and ElasticSearchBuild Your Own Image Search Using AI Object Detection, CDN and ElasticSearch.txt b/AI_Research_RAG_and_Data_Analysis/Build Your Own Image Search Using AI Object Detection, CDN and ElasticSearchBuild Your Own Image Search Using AI Object Detection, CDN and ElasticSearch.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Build Your Own Image Search Using AI Object Detection, CDN and ElasticSearchBuild Your Own Image Search Using AI Object Detection, CDN and ElasticSearch.txt rename to AI_Research_RAG_and_Data_Analysis/Build Your Own Image Search Using AI Object Detection, CDN and ElasticSearchBuild Your Own Image Search Using AI Object Detection, CDN and ElasticSearch.json diff --git a/AI_Research_RAG_and_Data_Analysis/Build a Financial Documents Assistant using Qdrant and Mistral.ai.txt b/AI_Research_RAG_and_Data_Analysis/Build a Financial Documents Assistant using Qdrant and Mistral.ai.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Build a Financial Documents Assistant using Qdrant and Mistral.ai.txt rename to AI_Research_RAG_and_Data_Analysis/Build a Financial Documents Assistant using Qdrant and Mistral.ai.json diff --git a/AI_Research_RAG_and_Data_Analysis/Build a Tax Code Assistant with Qdrant, Mistral.ai and OpenAI.txt b/AI_Research_RAG_and_Data_Analysis/Build a Tax Code Assistant with Qdrant, Mistral.ai and OpenAI.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Build a Tax Code Assistant with Qdrant, Mistral.ai and OpenAI.txt rename to AI_Research_RAG_and_Data_Analysis/Build a Tax Code Assistant with Qdrant, Mistral.ai and OpenAI.json diff --git a/AI_Research_RAG_and_Data_Analysis/Building RAG Chatbot for Movie Recommendations with Qdrant and Open AI.txt b/AI_Research_RAG_and_Data_Analysis/Building RAG Chatbot for Movie Recommendations with Qdrant and Open AI.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Building RAG Chatbot for Movie Recommendations with Qdrant and Open AI.txt rename to AI_Research_RAG_and_Data_Analysis/Building RAG Chatbot for Movie Recommendations with Qdrant and Open AI.json diff --git a/AI_Research_RAG_and_Data_Analysis/Chat with GitHub API Documentation_ RAG-Powered Chatbot with Pinecone & OpenAI.txt b/AI_Research_RAG_and_Data_Analysis/Chat with GitHub API Documentation_ RAG-Powered Chatbot with Pinecone & OpenAI.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Chat with GitHub API Documentation_ RAG-Powered Chatbot with Pinecone & OpenAI.txt rename to AI_Research_RAG_and_Data_Analysis/Chat with GitHub API Documentation_ RAG-Powered Chatbot with Pinecone & OpenAI.json diff --git a/AI_Research_RAG_and_Data_Analysis/Create a Google Analytics Data Report with AI and sent it to E-Mail and Telegram.txt b/AI_Research_RAG_and_Data_Analysis/Create a Google Analytics Data Report with AI and sent it to E-Mail and Telegram.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Create a Google Analytics Data Report with AI and sent it to E-Mail and Telegram.txt rename to AI_Research_RAG_and_Data_Analysis/Create a Google Analytics Data Report with AI and sent it to E-Mail and Telegram.json diff --git a/AI_Research_RAG_and_Data_Analysis/Customer Insights with Qdrant, Python and Information Extractor.txt b/AI_Research_RAG_and_Data_Analysis/Customer Insights with Qdrant, Python and Information Extractor.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Customer Insights with Qdrant, Python and Information Extractor.txt rename to AI_Research_RAG_and_Data_Analysis/Customer Insights with Qdrant, Python and Information Extractor.json diff --git a/AI_Research_RAG_and_Data_Analysis/Deduplicate Scraping AI Grants for Eligibility using AI.txt b/AI_Research_RAG_and_Data_Analysis/Deduplicate Scraping AI Grants for Eligibility using AI.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Deduplicate Scraping AI Grants for Eligibility using AI.txt rename to AI_Research_RAG_and_Data_Analysis/Deduplicate Scraping AI Grants for Eligibility using AI.json diff --git a/AI_Research_RAG_and_Data_Analysis/Enrich Property Inventory Survey with Image Recognition and AI Agent.txt b/AI_Research_RAG_and_Data_Analysis/Enrich Property Inventory Survey with Image Recognition and AI Agent.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Enrich Property Inventory Survey with Image Recognition and AI Agent.txt rename to AI_Research_RAG_and_Data_Analysis/Enrich Property Inventory Survey with Image Recognition and AI Agent.json diff --git a/AI_Research_RAG_and_Data_Analysis/Extract insights & analyse YouTube comments via AI Agent chat.txt b/AI_Research_RAG_and_Data_Analysis/Extract insights & analyse YouTube comments via AI Agent chat.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Extract insights & analyse YouTube comments via AI Agent chat.txt rename to AI_Research_RAG_and_Data_Analysis/Extract insights & analyse YouTube comments via AI Agent chat.json diff --git a/AI_Research_RAG_and_Data_Analysis/Generate SEO Seed Keywords Using AI.txt b/AI_Research_RAG_and_Data_Analysis/Generate SEO Seed Keywords Using AI.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Generate SEO Seed Keywords Using AI.txt rename to AI_Research_RAG_and_Data_Analysis/Generate SEO Seed Keywords Using AI.json diff --git a/AI_Research_RAG_and_Data_Analysis/Hacker News Job Listing Scraper and Parser.txt b/AI_Research_RAG_and_Data_Analysis/Hacker News Job Listing Scraper and Parser.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Hacker News Job Listing Scraper and Parser.txt rename to AI_Research_RAG_and_Data_Analysis/Hacker News Job Listing Scraper and Parser.json diff --git a/AI_Research_RAG_and_Data_Analysis/Hacker News to Video Content.txt b/AI_Research_RAG_and_Data_Analysis/Hacker News to Video Content.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Hacker News to Video Content.txt rename to AI_Research_RAG_and_Data_Analysis/Hacker News to Video Content.json diff --git a/AI_Research_RAG_and_Data_Analysis/Host Your Own AI Deep Research Agent with n8n, Apify and OpenAI o3.txt b/AI_Research_RAG_and_Data_Analysis/Host Your Own AI Deep Research Agent with n8n, Apify and OpenAI o3.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Host Your Own AI Deep Research Agent with n8n, Apify and OpenAI o3.txt rename to AI_Research_RAG_and_Data_Analysis/Host Your Own AI Deep Research Agent with n8n, Apify and OpenAI o3.json diff --git a/AI_Research_RAG_and_Data_Analysis/Intelligent Web Query and Semantic Re-Ranking Flow using Brave and Google Gemini.txt b/AI_Research_RAG_and_Data_Analysis/Intelligent Web Query and Semantic Re-Ranking Flow using Brave and Google Gemini.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Intelligent Web Query and Semantic Re-Ranking Flow using Brave and Google Gemini.txt rename to AI_Research_RAG_and_Data_Analysis/Intelligent Web Query and Semantic Re-Ranking Flow using Brave and Google Gemini.json diff --git a/AI_Research_RAG_and_Data_Analysis/Learn Anything from HN - Get Top Resource Recommendations from Hacker News.txt b/AI_Research_RAG_and_Data_Analysis/Learn Anything from HN - Get Top Resource Recommendations from Hacker News.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Learn Anything from HN - Get Top Resource Recommendations from Hacker News.txt rename to AI_Research_RAG_and_Data_Analysis/Learn Anything from HN - Get Top Resource Recommendations from Hacker News.json diff --git a/AI_Research_RAG_and_Data_Analysis/Make OpenAI Citation for File Retrieval RAG.txt b/AI_Research_RAG_and_Data_Analysis/Make OpenAI Citation for File Retrieval RAG.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Make OpenAI Citation for File Retrieval RAG.txt rename to AI_Research_RAG_and_Data_Analysis/Make OpenAI Citation for File Retrieval RAG.json diff --git a/AI_Research_RAG_and_Data_Analysis/Open Deep Research - AI-Powered Autonomous Research Workflow.txt b/AI_Research_RAG_and_Data_Analysis/Open Deep Research - AI-Powered Autonomous Research Workflow.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Open Deep Research - AI-Powered Autonomous Research Workflow.txt rename to AI_Research_RAG_and_Data_Analysis/Open Deep Research - AI-Powered Autonomous Research Workflow.json diff --git a/AI_Research_RAG_and_Data_Analysis/Query Perplexity AI from your n8n workflows.txt b/AI_Research_RAG_and_Data_Analysis/Query Perplexity AI from your n8n workflows.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Query Perplexity AI from your n8n workflows.txt rename to AI_Research_RAG_and_Data_Analysis/Query Perplexity AI from your n8n workflows.json diff --git a/AI_Research_RAG_and_Data_Analysis/Recipe Recommendations with Qdrant and Mistral.txt b/AI_Research_RAG_and_Data_Analysis/Recipe Recommendations with Qdrant and Mistral.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Recipe Recommendations with Qdrant and Mistral.txt rename to AI_Research_RAG_and_Data_Analysis/Recipe Recommendations with Qdrant and Mistral.json diff --git a/AI_Research_RAG_and_Data_Analysis/Reconcile Rent Payments with Local Excel Spreadsheet and OpenAI.txt b/AI_Research_RAG_and_Data_Analysis/Reconcile Rent Payments with Local Excel Spreadsheet and OpenAI.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Reconcile Rent Payments with Local Excel Spreadsheet and OpenAI.txt rename to AI_Research_RAG_and_Data_Analysis/Reconcile Rent Payments with Local Excel Spreadsheet and OpenAI.json diff --git a/AI_Research_RAG_and_Data_Analysis/Scrape Trustpilot Reviews with DeepSeek, Analyze Sentiment with OpenAI.txt b/AI_Research_RAG_and_Data_Analysis/Scrape Trustpilot Reviews with DeepSeek, Analyze Sentiment with OpenAI.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Scrape Trustpilot Reviews with DeepSeek, Analyze Sentiment with OpenAI.txt rename to AI_Research_RAG_and_Data_Analysis/Scrape Trustpilot Reviews with DeepSeek, Analyze Sentiment with OpenAI.json diff --git a/AI_Research_RAG_and_Data_Analysis/Scrape and summarize posts of a news site without RSS feed using AI and save them to a NocoDB.txt b/AI_Research_RAG_and_Data_Analysis/Scrape and summarize posts of a news site without RSS feed using AI and save them to a NocoDB.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Scrape and summarize posts of a news site without RSS feed using AI and save them to a NocoDB.txt rename to AI_Research_RAG_and_Data_Analysis/Scrape and summarize posts of a news site without RSS feed using AI and save them to a NocoDB.json diff --git a/AI_Research_RAG_and_Data_Analysis/Scrape and summarize webpages with AI.txt b/AI_Research_RAG_and_Data_Analysis/Scrape and summarize webpages with AI.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Scrape and summarize webpages with AI.txt rename to AI_Research_RAG_and_Data_Analysis/Scrape and summarize webpages with AI.json diff --git a/AI_Research_RAG_and_Data_Analysis/Send Google analytics data to A.I. to analyze then save results in Baserow.txt b/AI_Research_RAG_and_Data_Analysis/Send Google analytics data to A.I. to analyze then save results in Baserow.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Send Google analytics data to A.I. to analyze then save results in Baserow.txt rename to AI_Research_RAG_and_Data_Analysis/Send Google analytics data to A.I. to analyze then save results in Baserow.json diff --git a/AI_Research_RAG_and_Data_Analysis/Send Google analytics data to A.I. to analyze then save results in BaserowSend Google analytics data to A.I. to analyze then save results in Baserow.txt b/AI_Research_RAG_and_Data_Analysis/Send Google analytics data to A.I. to analyze then save results in BaserowSend Google analytics data to A.I. to analyze then save results in Baserow.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Send Google analytics data to A.I. to analyze then save results in BaserowSend Google analytics data to A.I. to analyze then save results in Baserow.txt rename to AI_Research_RAG_and_Data_Analysis/Send Google analytics data to A.I. to analyze then save results in BaserowSend Google analytics data to A.I. to analyze then save results in Baserow.json diff --git a/AI_Research_RAG_and_Data_Analysis/Spot Workplace Discrimination Patterns with AI.txt b/AI_Research_RAG_and_Data_Analysis/Spot Workplace Discrimination Patterns with AI.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Spot Workplace Discrimination Patterns with AI.txt rename to AI_Research_RAG_and_Data_Analysis/Spot Workplace Discrimination Patterns with AI.json diff --git a/AI_Research_RAG_and_Data_Analysis/Summarize SERPBear data with AI (via Openrouter) and save it to Baserow.txt b/AI_Research_RAG_and_Data_Analysis/Summarize SERPBear data with AI (via Openrouter) and save it to Baserow.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Summarize SERPBear data with AI (via Openrouter) and save it to Baserow.txt rename to AI_Research_RAG_and_Data_Analysis/Summarize SERPBear data with AI (via Openrouter) and save it to Baserow.json diff --git a/AI_Research_RAG_and_Data_Analysis/Summarize Umami data with AI (via Openrouter) and save it to Baserow.txt b/AI_Research_RAG_and_Data_Analysis/Summarize Umami data with AI (via Openrouter) and save it to Baserow.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Summarize Umami data with AI (via Openrouter) and save it to Baserow.txt rename to AI_Research_RAG_and_Data_Analysis/Summarize Umami data with AI (via Openrouter) and save it to Baserow.json diff --git a/AI_Research_RAG_and_Data_Analysis/Survey Insights with Qdrant, Python and Information Extractor.txt b/AI_Research_RAG_and_Data_Analysis/Survey Insights with Qdrant, Python and Information Extractor.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Survey Insights with Qdrant, Python and Information Extractor.txt rename to AI_Research_RAG_and_Data_Analysis/Survey Insights with Qdrant, Python and Information Extractor.json diff --git a/AI_Research_RAG_and_Data_Analysis/Ultimate Scraper Workflow for n8n.txt b/AI_Research_RAG_and_Data_Analysis/Ultimate Scraper Workflow for n8n.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Ultimate Scraper Workflow for n8n.txt rename to AI_Research_RAG_and_Data_Analysis/Ultimate Scraper Workflow for n8n.json diff --git a/AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [1_3 anomaly][1_2 KNN].txt b/AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [1_3 anomaly][1_2 KNN].json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [1_3 anomaly][1_2 KNN].txt rename to AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [1_3 anomaly][1_2 KNN].json diff --git a/AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [2_2 KNN] (1).txt b/AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [2_2 KNN].json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [2_2 KNN] (1).txt rename to AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [2_2 KNN].json diff --git a/AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [2_2 KNN].txt b/AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [2_2 KNN].txt deleted file mode 100644 index 1606a3e..0000000 --- a/AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [2_2 KNN].txt +++ /dev/null @@ -1,544 +0,0 @@ -{ -"id": "itzURpN5wbUNOXOw", -"meta": { -"instanceId": "205b3bc06c96f2dc835b4f00e1cbf9a937a74eeb3b47c99d0c30b0586dbf85aa" -}, -"name": "[2/2] KNN classifier (lands dataset)", -"tags": [ -{ -"id": "QN7etptCmdcGIpkS", -"name": "classifier", -"createdAt": "2024-12-08T22:08:15.968Z", -"updatedAt": "2024-12-09T19:25:04.113Z" -} -], -"nodes": [ -{ -"id": "33373ccb-164e-431c-8a9a-d68668fc70be", -"name": "Embed image", -"type": "n8n-nodes-base.httpRequest", -"position": [ --140, --240 -], -"parameters": { -"url": "https://api.voyageai.com/v1/multimodalembeddings", -"method": "POST", -"options": {}, -"jsonBody": "={{\n{\n \"inputs\": [\n {\n \"content\": [\n {\n \"type\": \"image_url\",\n \"image_url\": $json.imageURL\n }\n ]\n }\n ],\n \"model\": \"voyage-multimodal-3\",\n \"input_type\": \"document\"\n}\n}}", -"sendBody": true, -"specifyBody": "json", -"authentication": "genericCredentialType", -"genericAuthType": "httpHeaderAuth" -}, -"credentials": { -"httpHeaderAuth": { -"id": "Vb0RNVDnIHmgnZOP", -"name": "Voyage API" -} -}, -"typeVersion": 4.2 -}, -{ -"id": "58adecfa-45c7-4928-b850-053ea6f3b1c5", -"name": "Query Qdrant", -"type": "n8n-nodes-base.httpRequest", -"position": [ -440, --240 -], -"parameters": { -"url": "={{ $json.qdrantCloudURL }}/collections/{{ $json.collectionName }}/points/query", -"method": "POST", -"options": {}, -"jsonBody": "={{\n{\n \"query\": $json.ImageEmbedding,\n \"using\": \"voyage\",\n \"limit\": $json.limitKNN,\n \"with_payload\": true\n}\n}}", -"sendBody": true, -"specifyBody": "json", -"authentication": "predefinedCredentialType", -"nodeCredentialType": "qdrantApi" -}, -"credentials": { -"qdrantApi": { -"id": "it3j3hP9FICqhgX6", -"name": "QdrantApi account" -} -}, -"typeVersion": 4.2 -}, -{ -"id": "258026b7-2dda-4165-bfe1-c4163b9caf78", -"name": "Majority Vote", -"type": "n8n-nodes-base.code", -"position": [ -840, --240 -], -"parameters": { -"language": "python", -"pythonCode": "from collections import Counter\n\ninput_json = _input.all()[0]\npoints = input_json['json']['result']['points']\nmajority_vote_two_most_common = Counter([point[\"payload\"][\"landscape_name\"] for point in points]).most_common(2)\n\nreturn [{\n \"json\": {\n \"result\": majority_vote_two_most_common \n }\n}]\n" -}, -"typeVersion": 2 -}, -{ -"id": "e83e7a0c-cb36-46d0-8908-86ee1bddf638", -"name": "Increase limitKNN", -"type": "n8n-nodes-base.set", -"position": [ -1240, --240 -], -"parameters": { -"options": {}, -"assignments": { -"assignments": [ -{ -"id": "0b5d257b-1b27-48bc-bec2-78649bc844cc", -"name": "limitKNN", -"type": "number", -"value": "={{ $('Propagate loop variables').item.json.limitKNN + 5}}" -}, -{ -"id": "afee4bb3-f78b-4355-945d-3776e33337a4", -"name": "ImageEmbedding", -"type": "array", -"value": "={{ $('Qdrant variables + embedding + KNN neigbours').first().json.ImageEmbedding }}" -}, -{ -"id": "701ed7ba-d112-4699-a611-c0c134757a6c", -"name": "qdrantCloudURL", -"type": "string", -"value": "={{ $('Qdrant variables + embedding + KNN neigbours').first().json.qdrantCloudURL }}" -}, -{ -"id": "f5612f78-e7d8-4124-9c3a-27bd5870c9bf", -"name": "collectionName", -"type": "string", -"value": "={{ $('Qdrant variables + embedding + KNN neigbours').first().json.collectionName }}" -} -] -} -}, -"typeVersion": 3.4 -}, -{ -"id": "8edbff53-cba6-4491-9d5e-bac7ad6db418", -"name": "Propagate loop variables", -"type": "n8n-nodes-base.set", -"position": [ -640, --240 -], -"parameters": { -"options": {}, -"assignments": { -"assignments": [ -{ -"id": "880838bf-2be2-4f5f-9417-974b3cbee163", -"name": "=limitKNN", -"type": "number", -"value": "={{ $json.result.points.length}}" -}, -{ -"id": "5fff2bea-f644-4fd9-ad04-afbecd19a5bc", -"name": "result", -"type": "object", -"value": "={{ $json.result }}" -} -] -} -}, -"typeVersion": 3.4 -}, -{ -"id": "6fad4cc0-f02c-429d-aa4e-0d69ebab9d65", -"name": "Image Test URL", -"type": "n8n-nodes-base.set", -"position": [ --320, --240 -], -"parameters": { -"options": {}, -"assignments": { -"assignments": [ -{ -"id": "46ceba40-fb25-450c-8550-d43d8b8aa94c", -"name": "imageURL", -"type": "string", -"value": "={{ $json.query.imageURL }}" -} -] -} -}, -"typeVersion": 3.4 -}, -{ -"id": "f02e79e2-32c8-4af0-8bf9-281119b23cc0", -"name": "Return class", -"type": "n8n-nodes-base.set", -"position": [ -1240, -0 -], -"parameters": { -"options": {}, -"assignments": { -"assignments": [ -{ -"id": "bd8ca541-8758-4551-b667-1de373231364", -"name": "class", -"type": "string", -"value": "={{ $json.result[0][0] }}" -} -] -} -}, -"typeVersion": 3.4 -}, -{ -"id": "83ca90fb-d5d5-45f4-8957-4363a4baf8ed", -"name": "Check tie", -"type": "n8n-nodes-base.if", -"position": [ -1040, --240 -], -"parameters": { -"options": {}, -"conditions": { -"options": { -"version": 2, -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "980663f6-9d7d-4e88-87b9-02030882472c", -"operator": { -"type": "number", -"operation": "gt" -}, -"leftValue": "={{ $json.result.length }}", -"rightValue": 1 -}, -{ -"id": "9f46fdeb-0f89-4010-99af-624c1c429d6a", -"operator": { -"type": "number", -"operation": "equals" -}, -"leftValue": "={{ $json.result[0][1] }}", -"rightValue": "={{ $json.result[1][1] }}" -}, -{ -"id": "c59bc4fe-6821-4639-8595-fdaf4194c1e1", -"operator": { -"type": "number", -"operation": "lte" -}, -"leftValue": "={{ $('Propagate loop variables').item.json.limitKNN }}", -"rightValue": 100 -} -] -} -}, -"typeVersion": 2.2 -}, -{ -"id": "847ced21-4cfd-45d8-98fa-b578adc054d6", -"name": "Qdrant variables + embedding + KNN neigbours", -"type": "n8n-nodes-base.set", -"position": [ -120, --240 -], -"parameters": { -"options": {}, -"assignments": { -"assignments": [ -{ -"id": "de66070d-5e74-414e-8af7-d094cbc26f62", -"name": "ImageEmbedding", -"type": "array", -"value": "={{ $json.data[0].embedding }}" -}, -{ -"id": "58b7384d-fd0c-44aa-9f8e-0306a99be431", -"name": "qdrantCloudURL", -"type": "string", -"value": "=https://152bc6e2-832a-415c-a1aa-fb529f8baf8d.eu-central-1-0.aws.cloud.qdrant.io" -}, -{ -"id": "e34c4d88-b102-43cc-a09e-e0553f2da23a", -"name": "collectionName", -"type": "string", -"value": "=land-use" -}, -{ -"id": "db37e18d-340b-4624-84f6-df993af866d6", -"name": "limitKNN", -"type": "number", -"value": "=10" -} -] -} -}, -"typeVersion": 3.4 -}, -{ -"id": "d1bc4edc-37d2-43ac-8d8b-560453e68d1f", -"name": "Sticky Note", -"type": "n8n-nodes-base.stickyNote", -"position": [ --940, --120 -], -"parameters": { -"color": 6, -"width": 320, -"height": 540, -"content": "Here we're classifying existing types of satellite imagery of land types:\n- 'agricultural',\n- 'airplane',\n- 'baseballdiamond',\n- 'beach',\n- 'buildings',\n- 'chaparral',\n- 'denseresidential',\n- 'forest',\n- 'freeway',\n- 'golfcourse',\n- 'harbor',\n- 'intersection',\n- 'mediumresidential',\n- 'mobilehomepark',\n- 'overpass',\n- 'parkinglot',\n- 'river',\n- 'runway',\n- 'sparseresidential',\n- 'storagetanks',\n- 'tenniscourt'\n" -}, -"typeVersion": 1 -}, -{ -"id": "13560a31-3c72-43b8-9635-3f9ca11f23c9", -"name": "Sticky Note1", -"type": "n8n-nodes-base.stickyNote", -"position": [ --520, --460 -], -"parameters": { -"color": 6, -"content": "I tested this KNN classifier on a whole `test` set of a dataset (it's not a part of the collection, only `validation` + `train` parts). Accuracy of classification on `test` is **93.24%**, no fine-tuning, no metric learning." -}, -"typeVersion": 1 -}, -{ -"id": "8c9dcbcb-a1ad-430f-b7dd-e19b5645b0f6", -"name": "Execute Workflow Trigger", -"type": "n8n-nodes-base.executeWorkflowTrigger", -"position": [ --520, --240 -], -"parameters": {}, -"typeVersion": 1 -}, -{ -"id": "b36fb270-2101-45e9-bb5c-06c4e07b769c", -"name": "Sticky Note2", -"type": "n8n-nodes-base.stickyNote", -"position": [ --1080, --520 -], -"parameters": { -"width": 460, -"height": 380, -"content": "## KNN classification workflow-tool\n### This n8n template takes an image URL (as anomaly detection tool does), and as output, it returns a class of the object on the image (out of land types list)\n\n* An image URL is received via the Execute Workflow Trigger, which is then sent to the Voyage.ai Multimodal Embeddings API to fetch its embedding.\n* The image's embedding vector is then used to query Qdrant, returning a set of X similar images with pre-labeled classes.\n* Majority voting is done for classes of neighbouring images.\n* A loop is used to resolve scenarios where there is a tie in Majority Voting (for example, we have 5 \"forest\" and 5 \"beach\"), and we increase the number of neighbours to retrieve.\n* When the loop finally resolves, the identified class is returned to the calling workflow." -}, -"typeVersion": 1 -}, -{ -"id": "51ece7fc-fd85-4d20-ae26-4df2d3893251", -"name": "Sticky Note3", -"type": "n8n-nodes-base.stickyNote", -"position": [ -120, --40 -], -"parameters": { -"height": 200, -"content": "Variables define another Qdrant's collection with landscapes (uploaded similarly as the crops collection, don't forget to switch it with your data) + amount of neighbours **limitKNN** in the database we'll use for an input image classification." -}, -"typeVersion": 1 -}, -{ -"id": "7aad5904-eb0b-4389-9d47-cc91780737ba", -"name": "Sticky Note4", -"type": "n8n-nodes-base.stickyNote", -"position": [ --180, --60 -], -"parameters": { -"height": 80, -"content": "Similarly to anomaly detection tool, we're embedding input image with the Voyage model" -}, -"typeVersion": 1 -}, -{ -"id": "d3702707-ee4a-481f-82ca-d9386f5b7c8a", -"name": "Sticky Note5", -"type": "n8n-nodes-base.stickyNote", -"position": [ -440, --500 -], -"parameters": { -"width": 740, -"height": 200, -"content": "## Tie loop\nHere we're [querying](https://api.qdrant.tech/api-reference/search/query-points) Qdrant, getting **limitKNN** nearest neighbours to our image <*Query Qdrant node*>, parsing their classes from payloads (images were pre-labeled & uploaded with their labels to Qdrant) & calculating the most frequent class name <*Majority Vote node*>. If there is a tie <*check tie node*> in 2 most common classes, for example, we have 5 \"forest\" and 5 \"harbor\", we repeat the procedure with the number of neighbours increased by 5 <*propagate loop variables node* and *increase limitKNN node*>.\nIf there is no tie, or we have already checked 100 neighbours, we exit the loop <*check tie node*> and return the class-answer." -}, -"typeVersion": 1 -}, -{ -"id": "d26911bb-0442-4adc-8511-7cec2d232393", -"name": "Sticky Note6", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1240, -160 -], -"parameters": { -"height": 80, -"content": "Here, we extract the name of the input image class decided by the Majority Vote\n" -}, -"typeVersion": 1 -}, -{ -"id": "84ffc859-1d5c-4063-9051-3587f30a0017", -"name": "Sticky Note10", -"type": "n8n-nodes-base.stickyNote", -"position": [ --520, -80 -], -"parameters": { -"color": 4, -"width": 540, -"height": 260, -"content": "### KNN (k nearest neighbours) classification\n1. The first pipeline is uploading (lands) dataset to Qdrant's collection.\n2. **This is the KNN classifier tool, which takes any image as input and classifies it based on queries to the Qdrant (lands) collection.**\n\n### To recreate it\nYou'll have to upload [lands](https://www.kaggle.com/datasets/apollo2506/landuse-scene-classification) dataset from Kaggle to your own Google Storage bucket, and re-create APIs/connections to [Qdrant Cloud](https://qdrant.tech/documentation/quickstart-cloud/) (you can use **Free Tier** cluster), Voyage AI API & Google Cloud Storage\n\n**In general, pipelines are adaptable to any dataset of images**\n" -}, -"typeVersion": 1 -} -], -"active": false, -"pinData": { -"Execute Workflow Trigger": [ -{ -"json": { -"query": { -"imageURL": "https://storage.googleapis.com/n8n-qdrant-demo/land-use/images_train_test_val/test/buildings/buildings_000323.png" -} -} -} -] -}, -"settings": { -"executionOrder": "v1" -}, -"versionId": "c8cfe732-fd78-4985-9540-ed8cb2de7ef3", -"connections": { -"Check tie": { -"main": [ -[ -{ -"node": "Increase limitKNN", -"type": "main", -"index": 0 -} -], -[ -{ -"node": "Return class", -"type": "main", -"index": 0 -} -] -] -}, -"Embed image": { -"main": [ -[ -{ -"node": "Qdrant variables + embedding + KNN neigbours", -"type": "main", -"index": 0 -} -] -] -}, -"Query Qdrant": { -"main": [ -[ -{ -"node": "Propagate loop variables", -"type": "main", -"index": 0 -} -] -] -}, -"Majority Vote": { -"main": [ -[ -{ -"node": "Check tie", -"type": "main", -"index": 0 -} -] -] -}, -"Image Test URL": { -"main": [ -[ -{ -"node": "Embed image", -"type": "main", -"index": 0 -} -] -] -}, -"Increase limitKNN": { -"main": [ -[ -{ -"node": "Query Qdrant", -"type": "main", -"index": 0 -} -] -] -}, -"Execute Workflow Trigger": { -"main": [ -[ -{ -"node": "Image Test URL", -"type": "main", -"index": 0 -} -] -] -}, -"Propagate loop variables": { -"main": [ -[ -{ -"node": "Majority Vote", -"type": "main", -"index": 0 -} -] -] -}, -"Qdrant variables + embedding + KNN neigbours": { -"main": [ -[ -{ -"node": "Query Qdrant", -"type": "main", -"index": 0 -} -] -] -} -} -} \ No newline at end of file diff --git a/AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [2_3 - anomaly].txt b/AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [2_3 - anomaly].json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [2_3 - anomaly].txt rename to AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [2_3 - anomaly].json diff --git a/AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [3_3 - anomaly].txt b/AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [3_3 - anomaly].json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [3_3 - anomaly].txt rename to AI_Research_RAG_and_Data_Analysis/Vector Database as a Big Data Analysis Tool for AI Agents [3_3 - anomaly].json diff --git a/AI_Research_RAG_and_Data_Analysis/Visual Regression Testing with Apify and AI Vision Model.txt b/AI_Research_RAG_and_Data_Analysis/Visual Regression Testing with Apify and AI Vision Model.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/Visual Regression Testing with Apify and AI Vision Model.txt rename to AI_Research_RAG_and_Data_Analysis/Visual Regression Testing with Apify and AI Vision Model.json diff --git a/AI_Research_RAG_and_Data_Analysis/๐Ÿ” Perplexity Research to HTML_ AI-Powered Content Creation.txt b/AI_Research_RAG_and_Data_Analysis/๐Ÿ” Perplexity Research to HTML_ AI-Powered Content Creation.json similarity index 100% rename from AI_Research_RAG_and_Data_Analysis/๐Ÿ” Perplexity Research to HTML_ AI-Powered Content Creation.txt rename to AI_Research_RAG_and_Data_Analysis/๐Ÿ” Perplexity Research to HTML_ AI-Powered Content Creation.json diff --git a/Airtable/AI Agent for project management and meetings with Airtable and Fireflies.txt b/Airtable/AI Agent for project management and meetings with Airtable and Fireflies.json similarity index 100% rename from Airtable/AI Agent for project management and meetings with Airtable and Fireflies.txt rename to Airtable/AI Agent for project management and meetings with Airtable and Fireflies.json diff --git a/Airtable/AI Agent to chat with Airtable and analyze data.txt b/Airtable/AI Agent to chat with Airtable and analyze data.json similarity index 100% rename from Airtable/AI Agent to chat with Airtable and analyze data.txt rename to Airtable/AI Agent to chat with Airtable and analyze data.json diff --git a/Airtable/Get Airtable data via AI and Obsidian Notes.txt b/Airtable/Get Airtable data via AI and Obsidian Notes.json similarity index 100% rename from Airtable/Get Airtable data via AI and Obsidian Notes.txt rename to Airtable/Get Airtable data via AI and Obsidian Notes.json diff --git a/Airtable/Handling Job Application Submissions with AI and n8n Forms.txt b/Airtable/Handling Job Application Submissions with AI and n8n Forms.json similarity index 100% rename from Airtable/Handling Job Application Submissions with AI and n8n Forms.txt rename to Airtable/Handling Job Application Submissions with AI and n8n Forms.json diff --git a/Airtable/vAssistant for Hubspot Chat using OpenAi and Airtable.txt b/Airtable/vAssistant for Hubspot Chat using OpenAi and Airtable.json similarity index 100% rename from Airtable/vAssistant for Hubspot Chat using OpenAi and Airtable.txt rename to Airtable/vAssistant for Hubspot Chat using OpenAi and Airtable.json diff --git a/Database_and_Storage/Chat with Postgresql Database.txt b/Database_and_Storage/Chat with Postgresql Database.json similarity index 100% rename from Database_and_Storage/Chat with Postgresql Database.txt rename to Database_and_Storage/Chat with Postgresql Database.json diff --git a/Database_and_Storage/Generate SQL queries from schema only - AI-powered.txt b/Database_and_Storage/Generate SQL queries from schema only - AI-powered.json similarity index 100% rename from Database_and_Storage/Generate SQL queries from schema only - AI-powered.txt rename to Database_and_Storage/Generate SQL queries from schema only - AI-powered.json diff --git a/Database_and_Storage/MongoDB AI Agent - Intelligent Movie Recommendations.txt b/Database_and_Storage/MongoDB AI Agent - Intelligent Movie Recommendations.json similarity index 100% rename from Database_and_Storage/MongoDB AI Agent - Intelligent Movie Recommendations.txt rename to Database_and_Storage/MongoDB AI Agent - Intelligent Movie Recommendations.json diff --git a/Database_and_Storage/Supabase Insertion & Upsertion & Retrieval.txt b/Database_and_Storage/Supabase Insertion & Upsertion & Retrieval.json similarity index 100% rename from Database_and_Storage/Supabase Insertion & Upsertion & Retrieval.txt rename to Database_and_Storage/Supabase Insertion & Upsertion & Retrieval.json diff --git a/Database_and_Storage/Talk to your SQLite database with a LangChain AI Agent.txt b/Database_and_Storage/Talk to your SQLite database with a LangChain AI Agent.json similarity index 100% rename from Database_and_Storage/Talk to your SQLite database with a LangChain AI Agent.txt rename to Database_and_Storage/Talk to your SQLite database with a LangChain AI Agent.json diff --git a/Discord/Discord AI-powered bot.txt b/Discord/Discord AI-powered bot.json similarity index 100% rename from Discord/Discord AI-powered bot.txt rename to Discord/Discord AI-powered bot.json diff --git a/Discord/Send daily translated Calvin and Hobbes Comics to Discord.txt b/Discord/Send daily translated Calvin and Hobbes Comics to Discord.json similarity index 100% rename from Discord/Send daily translated Calvin and Hobbes Comics to Discord.txt rename to Discord/Send daily translated Calvin and Hobbes Comics to Discord.json diff --git a/Discord/Share YouTube Videos with AI Summaries on Discord.txt b/Discord/Share YouTube Videos with AI Summaries on Discord.json similarity index 100% rename from Discord/Share YouTube Videos with AI Summaries on Discord.txt rename to Discord/Share YouTube Videos with AI Summaries on Discord.json diff --git a/Forms_and_Surveys/Conversational Interviews with AI Agents and n8n Forms.txt b/Forms_and_Surveys/Conversational Interviews with AI Agents and n8n Forms.json similarity index 100% rename from Forms_and_Surveys/Conversational Interviews with AI Agents and n8n Forms.txt rename to Forms_and_Surveys/Conversational Interviews with AI Agents and n8n Forms.json diff --git a/Forms_and_Surveys/Email Subscription Service with n8n Forms, Airtable and AI (1).txt b/Forms_and_Surveys/Email Subscription Service with n8n Forms, Airtable and AI.json similarity index 100% rename from Forms_and_Surveys/Email Subscription Service with n8n Forms, Airtable and AI (1).txt rename to Forms_and_Surveys/Email Subscription Service with n8n Forms, Airtable and AI.json diff --git a/Forms_and_Surveys/Email Subscription Service with n8n Forms, Airtable and AI.txt b/Forms_and_Surveys/Email Subscription Service with n8n Forms, Airtable and AI.txt deleted file mode 100644 index c268937..0000000 --- a/Forms_and_Surveys/Email Subscription Service with n8n Forms, Airtable and AI.txt +++ /dev/null @@ -1,1536 +0,0 @@ -{ -"nodes": [ -{ -"id": "4dd52c72-9a9b-4db4-8de5-5b12b1e5c4be", -"name": "Schedule Trigger", -"type": "n8n-nodes-base.scheduleTrigger", -"position": [ -180, -1480 -], -"parameters": { -"rule": { -"interval": [ -{ -"triggerAtHour": 9 -} -] -} -}, -"typeVersion": 1.2 -}, -{ -"id": "9226181c-b84c-4ea1-a5b4-eedb6c62037b", -"name": "Search daily", -"type": "n8n-nodes-base.airtable", -"position": [ -440, -1480 -], -"parameters": { -"base": { -"__rl": true, -"mode": "list", -"value": "appL3dptT6ZTSzY9v", -"cachedResultUrl": "https://airtable.com/appL3dptT6ZTSzY9v", -"cachedResultName": "Scheduled Emails" -}, -"table": { -"__rl": true, -"mode": "list", -"value": "tblzR9vSuFUzlQNMI", -"cachedResultUrl": "https://airtable.com/appL3dptT6ZTSzY9v/tblzR9vSuFUzlQNMI", -"cachedResultName": "Table 1" -}, -"options": {}, -"operation": "search", -"filterByFormula": "AND({Status} = 'active', {Interval} = 'daily')" -}, -"credentials": { -"airtableTokenApi": { -"id": "Und0frCQ6SNVX3VV", -"name": "Airtable Personal Access Token account" -} -}, -"typeVersion": 2.1 -}, -{ -"id": "1a3b6224-2f66-41c6-8b3d-be286cf16370", -"name": "Search weekly", -"type": "n8n-nodes-base.airtable", -"position": [ -440, -1660 -], -"parameters": { -"base": { -"__rl": true, -"mode": "list", -"value": "appL3dptT6ZTSzY9v", -"cachedResultUrl": "https://airtable.com/appL3dptT6ZTSzY9v", -"cachedResultName": "Scheduled Emails" -}, -"table": { -"__rl": true, -"mode": "list", -"value": "tblzR9vSuFUzlQNMI", -"cachedResultUrl": "https://airtable.com/appL3dptT6ZTSzY9v/tblzR9vSuFUzlQNMI", -"cachedResultName": "Table 1" -}, -"options": {}, -"operation": "search", -"filterByFormula": "=AND(\n {Status} = 'active', \n {Interval} = 'weekly', \n {Last Sent} <= DATEADD(TODAY(), -7, 'days')\n)" -}, -"credentials": { -"airtableTokenApi": { -"id": "Und0frCQ6SNVX3VV", -"name": "Airtable Personal Access Token account" -} -}, -"typeVersion": 2.1 -}, -{ -"id": "1ea47e14-0a28-4780-95c7-31e24eb724d5", -"name": "confirmation email1", -"type": "n8n-nodes-base.gmail", -"position": [ -620, -820 -], -"webhookId": "dd8bd6df-2013-4f8d-a2cc-cd9b3913e3d2", -"parameters": { -"sendTo": "={{ $('Subscribe Form').item.json.email }}", -"message": "=This is to confirm your request to subscribe to \"Learn something every day!\" - a free service to send you facts about your favourite topics.\n\nTopic: {{ $('Subscribe Form').item.json.topic }}\nSchedule: {{ $('Subscribe Form').item.json.frequency }}", -"options": { -"appendAttribution": false -}, -"subject": "Learn something every day confirmation" -}, -"credentials": { -"gmailOAuth2": { -"id": "Sf5Gfl9NiFTNXFWb", -"name": "Gmail account" -} -}, -"typeVersion": 2.1 -}, -{ -"id": "d95262af-1b52-4f9c-8346-183b4eee8544", -"name": "Execute Workflow", -"type": "n8n-nodes-base.executeWorkflow", -"position": [ -1140, -1480 -], -"parameters": { -"mode": "each", -"options": { -"waitForSubWorkflow": false -}, -"workflowId": { -"__rl": true, -"mode": "id", -"value": "={{ $workflow.id }}" -} -}, -"typeVersion": 1.1 -}, -{ -"id": "075292af-7a66-4275-ac2d-3c392189a10c", -"name": "Create Event", -"type": "n8n-nodes-base.set", -"position": [ -980, -1480 -], -"parameters": { -"options": {}, -"assignments": { -"assignments": [ -{ -"id": "b28a0142-a028-471a-8180-9883e930feea", -"name": "email", -"type": "string", -"value": "={{ $json.Email }}" -}, -{ -"id": "970f5495-05df-42b6-a422-b2ac27f8eb95", -"name": "topic", -"type": "string", -"value": "={{ $json.Topic }}" -}, -{ -"id": "e871c431-948f-4b80-aa17-1e4266674663", -"name": "interval", -"type": "string", -"value": "={{ $json.Interval }}" -}, -{ -"id": "9b72597d-1446-4ef3-86e5-0a071c69155b", -"name": "id", -"type": "string", -"value": "={{ $json.id }}" -}, -{ -"id": "b17039c2-14a2-4811-9528-88ae963e44f7", -"name": "created_at", -"type": "string", -"value": "={{ $json.Created }}" -} -] -} -}, -"typeVersion": 3.4 -}, -{ -"id": "28776aaf-6bd9-4f9f-bcf0-3d4401a74219", -"name": "Execute Workflow Trigger", -"type": "n8n-nodes-base.executeWorkflowTrigger", -"position": [ -1360, -1480 -], -"parameters": {}, -"typeVersion": 1 -}, -{ -"id": "0eb62e75-228b-452b-80ab-f9ef3ad33204", -"name": "Unsubscribe Form", -"type": "n8n-nodes-base.formTrigger", -"position": [ -180, -1160 -], -"webhookId": "e64db96d-5e61-40d5-88fb-761621a829ab", -"parameters": { -"options": { -"path": "free-factoids-unsubscribe" -}, -"formTitle": "Unsubscribe from Learn Something Every Day", -"formFields": { -"values": [ -{ -"fieldLabel": "ID", -"requiredField": true -}, -{ -"fieldType": "dropdown", -"fieldLabel": "Reason For Unsubscribe", -"multiselect": true, -"fieldOptions": { -"values": [ -{ -"option": "Emails not relevant" -}, -{ -"option": "Too many Emails" -}, -{ -"option": "I did not sign up to this service" -} -] -} -} -] -}, -"formDescription": "We're sorry to see you go! Please take a moment to help us improve the service." -}, -"typeVersion": 2.2 -}, -{ -"id": "f889efe9-dc3c-428b-ad8e-4f7d17f23e75", -"name": "Set Email Vars", -"type": "n8n-nodes-base.set", -"position": [ -2500, -1480 -], -"parameters": { -"options": {}, -"assignments": { -"assignments": [ -{ -"id": "62a684fb-16f9-4326-8eeb-777d604b305a", -"name": "to", -"type": "string", -"value": "={{ $('Execute Workflow Trigger').first().json.email }},jim@height.io" -}, -{ -"id": "4270849e-c805-4580-9088-e8d1c3ef2fb4", -"name": "subject", -"type": "string", -"value": "=Your {{ $('Execute Workflow Trigger').first().json.interval }} factoid" -}, -{ -"id": "81d0e897-2496-4a3c-b16c-9319338f899f", -"name": "message", -"type": "string", -"value": "=

\nYou asked about \"{{ $('Execution Data').first().json.topic.replace('\"','') }}\"\n

\n

\n{{ $('Content Generation Agent').first().json.output }}\n

" -}, -{ -"id": "ee05de7b-5342-4deb-8118-edaf235d92cc", -"name": "unsubscribe_link", -"type": "string", -"value": "=https:///form/inspiration-unsubscribe?ID={{ $('Execute Workflow Trigger').first().json.id }}" -} -] -}, -"includeOtherFields": true -}, -"typeVersion": 3.4 -}, -{ -"id": "84741e6d-f5be-440d-8633-4eb30ccce170", -"name": "Log Last Sent", -"type": "n8n-nodes-base.airtable", -"position": [ -2860, -1480 -], -"parameters": { -"base": { -"__rl": true, -"mode": "list", -"value": "appL3dptT6ZTSzY9v", -"cachedResultUrl": "https://airtable.com/appL3dptT6ZTSzY9v", -"cachedResultName": "Scheduled Emails" -}, -"table": { -"__rl": true, -"mode": "list", -"value": "tblzR9vSuFUzlQNMI", -"cachedResultUrl": "https://airtable.com/appL3dptT6ZTSzY9v/tblzR9vSuFUzlQNMI", -"cachedResultName": "Table 1" -}, -"columns": { -"value": { -"id": "={{ $('Execute Workflow Trigger').first().json.id }}", -"Last Sent": "2024-11-29T13:34:11" -}, -"schema": [ -{ -"id": "id", -"type": "string", -"display": true, -"removed": false, -"readOnly": true, -"required": false, -"displayName": "id", -"defaultMatch": true -}, -{ -"id": "Name", -"type": "string", -"display": true, -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Name", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Email", -"type": "string", -"display": true, -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Email", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Status", -"type": "options", -"display": true, -"options": [ -{ -"name": "inactive", -"value": "inactive" -}, -{ -"name": "active", -"value": "active" -} -], -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Status", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Interval", -"type": "options", -"display": true, -"options": [ -{ -"name": "daily", -"value": "daily" -}, -{ -"name": "weekly", -"value": "weekly" -}, -{ -"name": "surprise", -"value": "surprise" -} -], -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Interval", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Start Day", -"type": "options", -"display": true, -"options": [ -{ -"name": "Mon", -"value": "Mon" -}, -{ -"name": "Tue", -"value": "Tue" -}, -{ -"name": "Wed", -"value": "Wed" -}, -{ -"name": "Thu", -"value": "Thu" -}, -{ -"name": "Fri", -"value": "Fri" -}, -{ -"name": "Sat", -"value": "Sat" -}, -{ -"name": "Sun", -"value": "Sun" -} -], -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Start Day", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Topic", -"type": "string", -"display": true, -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Topic", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Created", -"type": "string", -"display": true, -"removed": true, -"readOnly": true, -"required": false, -"displayName": "Created", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Last Modified", -"type": "string", -"display": true, -"removed": true, -"readOnly": true, -"required": false, -"displayName": "Last Modified", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Last Sent", -"type": "dateTime", -"display": true, -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Last Sent", -"defaultMatch": false, -"canBeUsedToMatch": true -} -], -"mappingMode": "defineBelow", -"matchingColumns": [ -"id" -] -}, -"options": {}, -"operation": "update" -}, -"credentials": { -"airtableTokenApi": { -"id": "Und0frCQ6SNVX3VV", -"name": "Airtable Personal Access Token account" -} -}, -"typeVersion": 2.1 -}, -{ -"id": "88f864d6-13fb-4f09-b22d-030d016678e1", -"name": "Search surprise", -"type": "n8n-nodes-base.airtable", -"position": [ -440, -1840 -], -"parameters": { -"base": { -"__rl": true, -"mode": "list", -"value": "appL3dptT6ZTSzY9v", -"cachedResultUrl": "https://airtable.com/appL3dptT6ZTSzY9v", -"cachedResultName": "Scheduled Emails" -}, -"table": { -"__rl": true, -"mode": "list", -"value": "tblzR9vSuFUzlQNMI", -"cachedResultUrl": "https://airtable.com/appL3dptT6ZTSzY9v/tblzR9vSuFUzlQNMI", -"cachedResultName": "Table 1" -}, -"options": {}, -"operation": "search", -"filterByFormula": "=AND(\n {Status} = 'active', \n {Interval} = 'surprise'\n)" -}, -"credentials": { -"airtableTokenApi": { -"id": "Und0frCQ6SNVX3VV", -"name": "Airtable Personal Access Token account" -} -}, -"typeVersion": 2.1 -}, -{ -"id": "28238d9a-7bc0-4a22-bb4e-a7a2827e4da3", -"name": "Should Send = True", -"type": "n8n-nodes-base.filter", -"position": [ -800, -1840 -], -"parameters": { -"options": {}, -"conditions": { -"options": { -"version": 2, -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "9aaf9ae2-8f96-443a-8294-c04270296b22", -"operator": { -"type": "boolean", -"operation": "true", -"singleValue": true -}, -"leftValue": "={{ $json.should_send }}", -"rightValue": "" -} -] -} -}, -"typeVersion": 2.2 -}, -{ -"id": "3a46dd3d-48a6-40ca-8823-0516aa9f73a4", -"name": "Should Send?", -"type": "n8n-nodes-base.code", -"position": [ -620, -1840 -], -"parameters": { -"mode": "runOnceForEachItem", -"jsCode": "const luckyPick = Math.floor(Math.random() * 10) + 1;\n$input.item.json.should_send = luckyPick == 8;\nreturn $input.item;" -}, -"typeVersion": 2 -}, -{ -"id": "3611da19-920b-48e6-84a4-f7be0b3a78fc", -"name": "Create Subscriber", -"type": "n8n-nodes-base.airtable", -"position": [ -440, -820 -], -"parameters": { -"base": { -"__rl": true, -"mode": "list", -"value": "appL3dptT6ZTSzY9v", -"cachedResultUrl": "https://airtable.com/appL3dptT6ZTSzY9v", -"cachedResultName": "Scheduled Emails" -}, -"table": { -"__rl": true, -"mode": "list", -"value": "tblzR9vSuFUzlQNMI", -"cachedResultUrl": "https://airtable.com/appL3dptT6ZTSzY9v/tblzR9vSuFUzlQNMI", -"cachedResultName": "Table 1" -}, -"columns": { -"value": { -"Email": "={{ $json.email }}", -"Topic": "={{ $json.topic }}", -"Status": "active", -"Interval": "={{ $json.frequency }}", -"Start Day": "={{ $json.submittedAt.toDateTime().format('EEE') }}" -}, -"schema": [ -{ -"id": "Name", -"type": "string", -"display": true, -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Name", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Email", -"type": "string", -"display": true, -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Email", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Status", -"type": "options", -"display": true, -"options": [ -{ -"name": "inactive", -"value": "inactive" -}, -{ -"name": "active", -"value": "active" -} -], -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Status", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Interval", -"type": "options", -"display": true, -"options": [ -{ -"name": "daily", -"value": "daily" -}, -{ -"name": "weekly", -"value": "weekly" -}, -{ -"name": "surprise", -"value": "surprise" -} -], -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Interval", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Start Day", -"type": "options", -"display": true, -"options": [ -{ -"name": "Mon", -"value": "Mon" -}, -{ -"name": "Tue", -"value": "Tue" -}, -{ -"name": "Wed", -"value": "Wed" -}, -{ -"name": "Thu", -"value": "Thu" -}, -{ -"name": "Fri", -"value": "Fri" -}, -{ -"name": "Sat", -"value": "Sat" -}, -{ -"name": "Sun", -"value": "Sun" -} -], -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Start Day", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Topic", -"type": "string", -"display": true, -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Topic", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Created", -"type": "string", -"display": true, -"removed": true, -"readOnly": true, -"required": false, -"displayName": "Created", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Last Modified", -"type": "string", -"display": true, -"removed": true, -"readOnly": true, -"required": false, -"displayName": "Last Modified", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Last Sent", -"type": "dateTime", -"display": true, -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Last Sent", -"defaultMatch": false, -"canBeUsedToMatch": true -} -], -"mappingMode": "defineBelow", -"matchingColumns": [ -"Email" -] -}, -"options": {}, -"operation": "upsert" -}, -"credentials": { -"airtableTokenApi": { -"id": "Und0frCQ6SNVX3VV", -"name": "Airtable Personal Access Token account" -} -}, -"typeVersion": 2.1 -}, -{ -"id": "2213a81f-53a9-4142-9586-e87b88710eec", -"name": "Update Subscriber", -"type": "n8n-nodes-base.airtable", -"position": [ -440, -1160 -], -"parameters": { -"base": { -"__rl": true, -"mode": "list", -"value": "appL3dptT6ZTSzY9v", -"cachedResultUrl": "https://airtable.com/appL3dptT6ZTSzY9v", -"cachedResultName": "Scheduled Emails" -}, -"table": { -"__rl": true, -"mode": "list", -"value": "tblzR9vSuFUzlQNMI", -"cachedResultUrl": "https://airtable.com/appL3dptT6ZTSzY9v/tblzR9vSuFUzlQNMI", -"cachedResultName": "Table 1" -}, -"columns": { -"value": { -"id": "={{ $json.ID }}", -"Status": "inactive" -}, -"schema": [ -{ -"id": "id", -"type": "string", -"display": true, -"removed": false, -"readOnly": true, -"required": false, -"displayName": "id", -"defaultMatch": true -}, -{ -"id": "Name", -"type": "string", -"display": true, -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Name", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Email", -"type": "string", -"display": true, -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Email", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Status", -"type": "options", -"display": true, -"options": [ -{ -"name": "inactive", -"value": "inactive" -}, -{ -"name": "active", -"value": "active" -} -], -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Status", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Interval", -"type": "options", -"display": true, -"options": [ -{ -"name": "daily", -"value": "daily" -}, -{ -"name": "weekly", -"value": "weekly" -} -], -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Interval", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Start Day", -"type": "options", -"display": true, -"options": [ -{ -"name": "Mon", -"value": "Mon" -}, -{ -"name": "Tue", -"value": "Tue" -}, -{ -"name": "Wed", -"value": "Wed" -}, -{ -"name": "Thu", -"value": "Thu" -}, -{ -"name": "Fri", -"value": "Fri" -}, -{ -"name": "Sat", -"value": "Sat" -}, -{ -"name": "Sun", -"value": "Sun" -} -], -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Start Day", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Topic", -"type": "string", -"display": true, -"removed": true, -"readOnly": false, -"required": false, -"displayName": "Topic", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Created", -"type": "string", -"display": true, -"removed": true, -"readOnly": true, -"required": false, -"displayName": "Created", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Last Modified", -"type": "string", -"display": true, -"removed": true, -"readOnly": true, -"required": false, -"displayName": "Last Modified", -"defaultMatch": false, -"canBeUsedToMatch": true -} -], -"mappingMode": "defineBelow", -"matchingColumns": [ -"id" -] -}, -"options": {}, -"operation": "update" -}, -"credentials": { -"airtableTokenApi": { -"id": "Und0frCQ6SNVX3VV", -"name": "Airtable Personal Access Token account" -} -}, -"typeVersion": 2.1 -}, -{ -"id": "c94ec18b-e0cf-4859-8b89-23abdd63739c", -"name": "Sticky Note", -"type": "n8n-nodes-base.stickyNote", -"position": [ -900, -1280 -], -"parameters": { -"color": 7, -"width": 335, -"height": 173, -"content": "### 4. Using Subworkflows to run executions concurrently\nThis configuration is desired when sequential execution is slow and unnecessary. Also if one email fails, it doesn't fail the execution for everyone else." -}, -"typeVersion": 1 -}, -{ -"id": "c14cab28-13eb-4d91-8578-8187a95a8909", -"name": "Sticky Note1", -"type": "n8n-nodes-base.stickyNote", -"position": [ -180, -700 -], -"parameters": { -"color": 7, -"width": 380, -"height": 80, -"content": "### 1. Subscribe flow\nUse a form to allow users to subscribe to the service." -}, -"typeVersion": 1 -}, -{ -"id": "0e44ada0-f8a7-440e-aded-33b446190a08", -"name": "Sticky Note2", -"type": "n8n-nodes-base.stickyNote", -"position": [ -180, -1020 -], -"parameters": { -"color": 7, -"width": 355, -"height": 115, -"content": "### 2. Unsubscribe flow\n* Uses Form's pre-fill field feature to identify user\n* Doesn't use \"email\" as identifier so you can't unsubscribe others" -}, -"typeVersion": 1 -}, -{ -"id": "e67bdffe-ccfc-4818-990d-b2a5ab613035", -"name": "Sticky Note3", -"type": "n8n-nodes-base.stickyNote", -"position": [ -180, -1340 -], -"parameters": { -"color": 7, -"width": 347, -"height": 114, -"content": "### 3. Scheduled Trigger\n* Runs every day at 9am\n* Handles all 3 frequency types\n* Send emails concurrently" -}, -"typeVersion": 1 -}, -{ -"id": "ce7d5310-7170-46d3-b8d8-3f97407f9dfd", -"name": "Subscribe Form", -"type": "n8n-nodes-base.formTrigger", -"position": [ -180, -820 -], -"webhookId": "c6abe3e3-ba87-4124-a227-84e253581b58", -"parameters": { -"options": { -"path": "free-factoids-subscribe", -"appendAttribution": false, -"respondWithOptions": { -"values": { -"formSubmittedText": "Thanks! Your factoid is on its way!" -} -} -}, -"formTitle": "Learn something every day!", -"formFields": { -"values": [ -{ -"fieldType": "textarea", -"fieldLabel": "topic", -"placeholder": "What topic(s) would you like to learn about?", -"requiredField": true -}, -{ -"fieldType": "email", -"fieldLabel": "email", -"placeholder": "eg. jim@example.com", -"requiredField": true -}, -{ -"fieldType": "dropdown", -"fieldLabel": "frequency", -"fieldOptions": { -"values": [ -{ -"option": "daily" -}, -{ -"option": "weekly" -}, -{ -"option": "surprise me" -} -] -}, -"requiredField": true -} -] -}, -"formDescription": "Get a fact a day (or week) about any subject sent to your inbox." -}, -"typeVersion": 2.2 -}, -{ -"id": "a5d50886-7d6b-4bf8-b376-b23c12a60608", -"name": "Execution Data", -"type": "n8n-nodes-base.executionData", -"position": [ -1560, -1480 -], -"parameters": { -"dataToSave": { -"values": [ -{ -"key": "email", -"value": "={{ $json.email }}" -} -] -} -}, -"typeVersion": 1 -}, -{ -"id": "69b40d8d-7734-47f1-89fe-9ea0378424b7", -"name": "Window Buffer Memory", -"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow", -"position": [ -1860, -1680 -], -"parameters": { -"sessionKey": "=scheduled_send_{{ $json.email }}", -"sessionIdType": "customKey" -}, -"typeVersion": 1.3 -}, -{ -"id": "f83cff18-f41f-4a63-9d43-7e3947aae386", -"name": "Wikipedia", -"type": "@n8n/n8n-nodes-langchain.toolWikipedia", -"position": [ -2020, -1680 -], -"parameters": {}, -"typeVersion": 1 -}, -{ -"id": "77457037-e3ab-42f1-948b-b994d42f2f6e", -"name": "Content Generation Agent", -"type": "@n8n/n8n-nodes-langchain.agent", -"position": [ -1780, -1460 -], -"parameters": { -"text": "=Generate an new factoid on the following topic: \"{{ $json.topic.replace('\"','') }}\"\nEnsure it is unique and not one generated previously.", -"options": {}, -"promptType": "define" -}, -"typeVersion": 1.7 -}, -{ -"id": "cdfdd870-48b6-4c7d-a7d1-a22d70423e37", -"name": "Groq Chat Model", -"type": "@n8n/n8n-nodes-langchain.lmChatGroq", -"position": [ -1720, -1680 -], -"parameters": { -"model": "llama-3.3-70b-versatile", -"options": {} -}, -"credentials": { -"groqApi": { -"id": "02xZ4o87lUMUFmbT", -"name": "Groq account" -} -}, -"typeVersion": 1 -}, -{ -"id": "87df322d-a544-476f-b2ff-83feb619fe7f", -"name": "Generate Image", -"type": "@n8n/n8n-nodes-langchain.openAi", -"position": [ -2120, -1460 -], -"parameters": { -"prompt": "=Generate a child-friendly illustration which compliments the following paragraph:\n{{ $json.output }}", -"options": {}, -"resource": "image" -}, -"credentials": { -"openAiApi": { -"id": "8gccIjcuf3gvaoEr", -"name": "OpenAi account" -} -}, -"typeVersion": 1.7 -}, -{ -"id": "5c8d9e72-4015-44da-b5d5-829864d33672", -"name": "Resize Image", -"type": "n8n-nodes-base.editImage", -"position": [ -2280, -1460 -], -"parameters": { -"width": 480, -"height": 360, -"options": {}, -"operation": "resize" -}, -"typeVersion": 1 -}, -{ -"id": "a9939fad-98b3-4894-aae0-c11fa40d09da", -"name": "Send Message", -"type": "n8n-nodes-base.gmail", -"position": [ -2680, -1480 -], -"webhookId": "dd8bd6df-2013-4f8d-a2cc-cd9b3913e3d2", -"parameters": { -"sendTo": "={{ $json.to }}", -"message": "=\n\n\n \n \n {{ $json.subject }}\n\n\n {{ $json.message }}\n

\nUnsubscribe\n

\n\n\n", -"options": { -"attachmentsUi": { -"attachmentsBinary": [ -{} -] -}, -"appendAttribution": false -}, -"subject": "={{ $json.subject }}" -}, -"credentials": { -"gmailOAuth2": { -"id": "Sf5Gfl9NiFTNXFWb", -"name": "Gmail account" -} -}, -"typeVersion": 2.1 -}, -{ -"id": "10b6ad35-fc1c-47a2-b234-5de3557d1164", -"name": "Sticky Note4", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1320, -1660 -], -"parameters": { -"color": 7, -"width": 335, -"height": 113, -"content": "### 5. Use Execution Data to Filter Logs\nIf you've registered for community+ or are on n8n cloud, best practice is to use execution node to allow filtering of execution logs." -}, -"typeVersion": 1 -}, -{ -"id": "e3563fae-ff35-457b-9fb1-784eda637518", -"name": "Sticky Note5", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1780, -1280 -], -"parameters": { -"color": 7, -"width": 340, -"height": 140, -"content": "### 6. Use AI to Generate Factoid and Image\nUse an AI agent to automate the generation of factoids as requested by the user. This is a simple example but we recommend a adding a unique touch to stand out from the crowd!" -}, -"typeVersion": 1 -}, -{ -"id": "d1016c5d-c855-44c5-8ad3-a534bedaa8cf", -"name": "Sticky Note6", -"type": "n8n-nodes-base.stickyNote", -"position": [ -2500, -1040 -], -"parameters": { -"color": 7, -"width": 460, -"height": 400, -"content": "### 7. Send Email to User\nFinally, send a message to the user with both text and image.\nLog the event in the Airtable for later analysis if required.\n\n![Screenshot of email result](https://res.cloudinary.com/daglih2g8/image/upload/f_auto,q_auto/v1/n8n-workflows/dbpctdhohj3vlewy6oyc)" -}, -"typeVersion": 1 -}, -{ -"id": "773075fa-e5a2-4d4f-8527-eb07c7038b00", -"name": "Sticky Note7", -"type": "n8n-nodes-base.stickyNote", -"position": [ --420, -680 -], -"parameters": { -"width": 480, -"height": 900, -"content": "## Try It Out!\n\n### This n8n templates demonstrates how to build a simple subscriber service entirely in n8n using n8n forms as a frontend, n8n generally as the backend and Airtable as the storage layer.\n\nThis template in particular shows a fully automated service to send automated messages containing facts about a topic the user requested for.\n\n### How it works\n* An n8n form is setup up to allow users to subscribe with a desired topic and interval of which to recieve messages via n8n forms which is then added to the Airtable.\n* A scheduled trigger is executed every morning and searches for subscribers to send messages for based on their desired intervals.\n* Once found, Subscribers are sent to a subworkflow which performs the text content generation via an AI agent and also uses a vision model to generate an image.\n* Both are attached to an email which is sent to the subscriber. This email also includes an unsubscribe link.\n* The unsubscribe flow works similarly via n8n form interface which when submitted disables further scheduled emails to the user.\n\n## How to use\n* Make a copy of sample Airtable here: https://airtable.com/appL3dptT6ZTSzY9v/shrLukHafy5bwDRfD\n* Make sure the workflow is \"activated\" and the forms are available and reachable by your audience.\n\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!" -}, -"typeVersion": 1 -} -], -"pinData": {}, -"connections": { -"Wikipedia": { -"ai_tool": [ -[ -{ -"node": "Content Generation Agent", -"type": "ai_tool", -"index": 0 -} -] -] -}, -"Create Event": { -"main": [ -[ -{ -"node": "Execute Workflow", -"type": "main", -"index": 0 -} -] -] -}, -"Resize Image": { -"main": [ -[ -{ -"node": "Set Email Vars", -"type": "main", -"index": 0 -} -] -] -}, -"Search daily": { -"main": [ -[ -{ -"node": "Create Event", -"type": "main", -"index": 0 -} -] -] -}, -"Send Message": { -"main": [ -[ -{ -"node": "Log Last Sent", -"type": "main", -"index": 0 -} -] -] -}, -"Should Send?": { -"main": [ -[ -{ -"node": "Should Send = True", -"type": "main", -"index": 0 -} -] -] -}, -"Search weekly": { -"main": [ -[ -{ -"node": "Create Event", -"type": "main", -"index": 0 -} -] -] -}, -"Execution Data": { -"main": [ -[ -{ -"node": "Content Generation Agent", -"type": "main", -"index": 0 -} -] -] -}, -"Generate Image": { -"main": [ -[ -{ -"node": "Resize Image", -"type": "main", -"index": 0 -} -] -] -}, -"Set Email Vars": { -"main": [ -[ -{ -"node": "Send Message", -"type": "main", -"index": 0 -} -] -] -}, -"Subscribe Form": { -"main": [ -[ -{ -"node": "Create Subscriber", -"type": "main", -"index": 0 -} -] -] -}, -"Groq Chat Model": { -"ai_languageModel": [ -[ -{ -"node": "Content Generation Agent", -"type": "ai_languageModel", -"index": 0 -} -] -] -}, -"Search surprise": { -"main": [ -[ -{ -"node": "Should Send?", -"type": "main", -"index": 0 -} -] -] -}, -"Schedule Trigger": { -"main": [ -[ -{ -"node": "Search surprise", -"type": "main", -"index": 0 -}, -{ -"node": "Search daily", -"type": "main", -"index": 0 -}, -{ -"node": "Search weekly", -"type": "main", -"index": 0 -} -] -] -}, -"Unsubscribe Form": { -"main": [ -[ -{ -"node": "Update Subscriber", -"type": "main", -"index": 0 -} -] -] -}, -"Create Subscriber": { -"main": [ -[ -{ -"node": "confirmation email1", -"type": "main", -"index": 0 -} -] -] -}, -"Should Send = True": { -"main": [ -[ -{ -"node": "Create Event", -"type": "main", -"index": 0 -} -] -] -}, -"Window Buffer Memory": { -"ai_memory": [ -[ -{ -"node": "Content Generation Agent", -"type": "ai_memory", -"index": 0 -} -] -] -}, -"Content Generation Agent": { -"main": [ -[ -{ -"node": "Generate Image", -"type": "main", -"index": 0 -} -] -] -}, -"Execute Workflow Trigger": { -"main": [ -[ -{ -"node": "Execution Data", -"type": "main", -"index": 0 -} -] -] -} -} -} \ No newline at end of file diff --git a/Forms_and_Surveys/Qualifying Appointment Requests with AI & n8n Forms.txt b/Forms_and_Surveys/Qualifying Appointment Requests with AI & n8n Forms.json similarity index 100% rename from Forms_and_Surveys/Qualifying Appointment Requests with AI & n8n Forms.txt rename to Forms_and_Surveys/Qualifying Appointment Requests with AI & n8n Forms.json diff --git a/Gmail_and_Email_Automation/A Very Simple _Human in the Loop_ Email Response System Using AI and IMAP.txt b/Gmail_and_Email_Automation/A Very Simple _Human in the Loop_ Email Response System Using AI and IMAP.json similarity index 100% rename from Gmail_and_Email_Automation/A Very Simple _Human in the Loop_ Email Response System Using AI and IMAP.txt rename to Gmail_and_Email_Automation/A Very Simple _Human in the Loop_ Email Response System Using AI and IMAP.json diff --git a/Gmail_and_Email_Automation/AI-powered email processing autoresponder and response approval (Yes_No).txt b/Gmail_and_Email_Automation/AI-powered email processing autoresponder and response approval (Yes_No).json similarity index 100% rename from Gmail_and_Email_Automation/AI-powered email processing autoresponder and response approval (Yes_No).txt rename to Gmail_and_Email_Automation/AI-powered email processing autoresponder and response approval (Yes_No).json diff --git a/Gmail_and_Email_Automation/Analyze & Sort Suspicious Email Contents with ChatGPT.txt b/Gmail_and_Email_Automation/Analyze & Sort Suspicious Email Contents with ChatGPT.json similarity index 100% rename from Gmail_and_Email_Automation/Analyze & Sort Suspicious Email Contents with ChatGPT.txt rename to Gmail_and_Email_Automation/Analyze & Sort Suspicious Email Contents with ChatGPT.json diff --git a/Gmail_and_Email_Automation/Analyze Suspicious Email Contents with ChatGPT Vision.txt b/Gmail_and_Email_Automation/Analyze Suspicious Email Contents with ChatGPT Vision.json similarity index 100% rename from Gmail_and_Email_Automation/Analyze Suspicious Email Contents with ChatGPT Vision.txt rename to Gmail_and_Email_Automation/Analyze Suspicious Email Contents with ChatGPT Vision.json diff --git a/Gmail_and_Email_Automation/Auto Categorise Outlook Emails with AI.txt b/Gmail_and_Email_Automation/Auto Categorise Outlook Emails with AI.json similarity index 100% rename from Gmail_and_Email_Automation/Auto Categorise Outlook Emails with AI.txt rename to Gmail_and_Email_Automation/Auto Categorise Outlook Emails with AI.json diff --git a/Gmail_and_Email_Automation/Auto-label incoming Gmail messages with AI nodes.txt b/Gmail_and_Email_Automation/Auto-label incoming Gmail messages with AI nodes.json similarity index 100% rename from Gmail_and_Email_Automation/Auto-label incoming Gmail messages with AI nodes.txt rename to Gmail_and_Email_Automation/Auto-label incoming Gmail messages with AI nodes.json diff --git a/Gmail_and_Email_Automation/Basic Automatic Gmail Email Labelling with OpenAI and Gmail API.txt b/Gmail_and_Email_Automation/Basic Automatic Gmail Email Labelling with OpenAI and Gmail API.json similarity index 100% rename from Gmail_and_Email_Automation/Basic Automatic Gmail Email Labelling with OpenAI and Gmail API.txt rename to Gmail_and_Email_Automation/Basic Automatic Gmail Email Labelling with OpenAI and Gmail API.json diff --git a/Gmail_and_Email_Automation/Classify lemlist replies using OpenAI and automate reply handling.txt b/Gmail_and_Email_Automation/Classify lemlist replies using OpenAI and automate reply handling.json similarity index 100% rename from Gmail_and_Email_Automation/Classify lemlist replies using OpenAI and automate reply handling.txt rename to Gmail_and_Email_Automation/Classify lemlist replies using OpenAI and automate reply handling.json diff --git a/Gmail_and_Email_Automation/Compose reply draft in Gmail with OpenAI Assistant.txt b/Gmail_and_Email_Automation/Compose reply draft in Gmail with OpenAI Assistant.json similarity index 100% rename from Gmail_and_Email_Automation/Compose reply draft in Gmail with OpenAI Assistant.txt rename to Gmail_and_Email_Automation/Compose reply draft in Gmail with OpenAI Assistant.json diff --git a/Gmail_and_Email_Automation/Effortless Email Management with AI-Powered Summarization & Review.txt b/Gmail_and_Email_Automation/Effortless Email Management with AI-Powered Summarization & Review.json similarity index 100% rename from Gmail_and_Email_Automation/Effortless Email Management with AI-Powered Summarization & Review.txt rename to Gmail_and_Email_Automation/Effortless Email Management with AI-Powered Summarization & Review.json diff --git a/Gmail_and_Email_Automation/Email Summary Agent.txt b/Gmail_and_Email_Automation/Email Summary Agent.json similarity index 100% rename from Gmail_and_Email_Automation/Email Summary Agent.txt rename to Gmail_and_Email_Automation/Email Summary Agent.json diff --git a/Gmail_and_Email_Automation/Extract spending history from gmail to google sheet.txt b/Gmail_and_Email_Automation/Extract spending history from gmail to google sheet.json similarity index 100% rename from Gmail_and_Email_Automation/Extract spending history from gmail to google sheet.txt rename to Gmail_and_Email_Automation/Extract spending history from gmail to google sheet.json diff --git a/Gmail_and_Email_Automation/Gmail AI Auto-Responder_ Create Draft Replies to incoming emails.txt b/Gmail_and_Email_Automation/Gmail AI Auto-Responder_ Create Draft Replies to incoming emails.json similarity index 100% rename from Gmail_and_Email_Automation/Gmail AI Auto-Responder_ Create Draft Replies to incoming emails.txt rename to Gmail_and_Email_Automation/Gmail AI Auto-Responder_ Create Draft Replies to incoming emails.json diff --git a/Gmail_and_Email_Automation/Microsoft Outlook AI Email Assistant with contact support from Monday and Airtable.txt b/Gmail_and_Email_Automation/Microsoft Outlook AI Email Assistant with contact support from Monday and Airtable.json similarity index 100% rename from Gmail_and_Email_Automation/Microsoft Outlook AI Email Assistant with contact support from Monday and Airtable.txt rename to Gmail_and_Email_Automation/Microsoft Outlook AI Email Assistant with contact support from Monday and Airtable.json diff --git a/Gmail_and_Email_Automation/Modular & Customizable AI-Powered Email Routing_ Text Classifier for eCommerce.txt b/Gmail_and_Email_Automation/Modular & Customizable AI-Powered Email Routing_ Text Classifier for eCommerce.json similarity index 100% rename from Gmail_and_Email_Automation/Modular & Customizable AI-Powered Email Routing_ Text Classifier for eCommerce.txt rename to Gmail_and_Email_Automation/Modular & Customizable AI-Powered Email Routing_ Text Classifier for eCommerce.json diff --git a/Gmail_and_Email_Automation/Send a ChatGPT email reply and save responses to Google Sheets.txt b/Gmail_and_Email_Automation/Send a ChatGPT email reply and save responses to Google Sheets.json similarity index 100% rename from Gmail_and_Email_Automation/Send a ChatGPT email reply and save responses to Google Sheets.txt rename to Gmail_and_Email_Automation/Send a ChatGPT email reply and save responses to Google Sheets.json diff --git a/Gmail_and_Email_Automation/Send specific PDF attachments from Gmail to Google Drive using OpenAI.txt b/Gmail_and_Email_Automation/Send specific PDF attachments from Gmail to Google Drive using OpenAI.json similarity index 100% rename from Gmail_and_Email_Automation/Send specific PDF attachments from Gmail to Google Drive using OpenAI.txt rename to Gmail_and_Email_Automation/Send specific PDF attachments from Gmail to Google Drive using OpenAI.json diff --git a/Gmail_and_Email_Automation/Summarize your emails with A.I. (via Openrouter) and send to Line messenger (1).txt b/Gmail_and_Email_Automation/Summarize your emails with A.I. (via Openrouter) and send to Line messenger.json similarity index 100% rename from Gmail_and_Email_Automation/Summarize your emails with A.I. (via Openrouter) and send to Line messenger (1).txt rename to Gmail_and_Email_Automation/Summarize your emails with A.I. (via Openrouter) and send to Line messenger.json diff --git a/Gmail_and_Email_Automation/Summarize your emails with A.I. (via Openrouter) and send to Line messenger.txt b/Gmail_and_Email_Automation/Summarize your emails with A.I. (via Openrouter) and send to Line messenger.txt deleted file mode 100644 index 1235748..0000000 --- a/Gmail_and_Email_Automation/Summarize your emails with A.I. (via Openrouter) and send to Line messenger.txt +++ /dev/null @@ -1,177 +0,0 @@ -{ -"id": "QnVdtKiTf3nbrNkh", -"meta": { -"instanceId": "558d88703fb65b2d0e44613bc35916258b0f0bf983c5d4730c00c424b77ca36a", -"templateCredsSetupCompleted": true -}, -"name": "Summarize emails with A.I. then send to messenger", -"tags": [], -"nodes": [ -{ -"id": "50e12e63-df28-45ac-9208-48cbf5116d09", -"name": "Read emails (IMAP)", -"type": "n8n-nodes-base.emailReadImap", -"position": [ -340, -260 -], -"parameters": { -"options": {}, -"postProcessAction": "nothing" -}, -"credentials": { -"imap": { -"id": "gXtdakU9M02LBQc3", -"name": "IMAP account" -} -}, -"typeVersion": 2 -}, -{ -"id": "6565350b-2269-44e3-8f36-8797f32d3e09", -"name": "Send email to A.I. to summarize", -"type": "n8n-nodes-base.httpRequest", -"position": [ -700, -260 -], -"parameters": { -"url": "https://openrouter.ai/api/v1/chat/completions", -"method": "POST", -"options": {}, -"jsonBody": "={\n \"model\": \"meta-llama/llama-3.1-70b-instruct:free\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"I want you to read and summarize all the emails. If it's not rimportant, just give me a short summary with less than 10 words.\\n\\nHighlight as important if it is, add an emoji to indicate it is urgent:\\nFor the relevant content, find any action items and deadlines. Sometimes I need to sign up before a certain date or pay before a certain date, please highlight that in the summary for me.\\n\\nPut the deadline in BOLD at the top. If the email is not important, keep the summary short to 1 sentence only.\\n\\nHere's the email content for you to read:\\nSender email address: {{ encodeURIComponent($json.from) }}\\nSubject: {{ encodeURIComponent($json.subject) }}\\n{{ encodeURIComponent($json.textHtml) }}\"\n }\n ]\n}", -"sendBody": true, -"specifyBody": "json", -"authentication": "genericCredentialType", -"genericAuthType": "httpHeaderAuth" -}, -"credentials": { -"httpHeaderAuth": { -"id": "WY7UkF14ksPKq3S8", -"name": "Header Auth account 2" -} -}, -"typeVersion": 4.2, -"alwaysOutputData": false -}, -{ -"id": "d04c422a-c000-4e48-82d0-0bf44bcd9fff", -"name": "Send summarized content to messenger", -"type": "n8n-nodes-base.httpRequest", -"position": [ -1100, -260 -], -"parameters": { -"url": "https://api.line.me/v2/bot/message/push", -"method": "POST", -"options": {}, -"jsonBody": "={\n \"to\": \"U3ec262c49811f30cdc2d2f2b0a0df99a\",\n \"messages\": [\n {\n \"type\": \"text\",\n \"text\": \"{{ $json.choices[0].message.content.replace(/\\n/g, \"\\\\n\") }}\"\n }\n ]\n}\n\n\n ", -"sendBody": true, -"specifyBody": "json", -"authentication": "genericCredentialType", -"genericAuthType": "httpHeaderAuth" -}, -"credentials": { -"httpHeaderAuth": { -"id": "SzcKjO9Nn9vZPL2H", -"name": "Header Auth account 5" -} -}, -"typeVersion": 4.2 -}, -{ -"id": "57a1219c-4f40-407c-855b-86c4c7c468bb", -"name": "Sticky Note", -"type": "n8n-nodes-base.stickyNote", -"position": [ -180, -0 -], -"parameters": { -"width": 361, -"height": 90, -"content": "## Summarize emails with A.I.\nYou can find out more about the [use case](https://rumjahn.com/how-a-i-saved-my-kids-school-life-and-my-marriage/)" -}, -"typeVersion": 1 -}, -{ -"id": "17686264-56ac-419e-a32b-dc5c75f15f1f", -"name": "Sticky Note1", -"type": "n8n-nodes-base.stickyNote", -"position": [ -283, -141 -], -"parameters": { -"color": 5, -"width": 229, -"height": 280, -"content": "Find your email server's IMAP Settings. \n- Link for [gmail](https://www.getmailspring.com/setup/access-gmail-via-imap-smtp)" -}, -"typeVersion": 1 -}, -{ -"id": "1862abd6-7dca-4c66-90d6-110d4fcf4d99", -"name": "Sticky Note2", -"type": "n8n-nodes-base.stickyNote", -"position": [ -580, -0 -], -"parameters": { -"color": 6, -"width": 365, -"height": 442, -"content": "For the A.I. you can use Openrouter.ai. \n- Set up a free account\n- The A.I. model selected is FREE to use.\n## Credentials\n- Use header auth\n- Username: Authorization\n- Password: Bearer {insert your API key}.\n- The password is \"Bearer\" space plus your API key." -}, -"typeVersion": 1 -}, -{ -"id": "c4a3a76f-539d-4bbf-8f95-d7aaebf39a55", -"name": "Sticky Note3", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1000, -0 -], -"parameters": { -"color": 4, -"width": 307, -"height": 439, -"content": "Don't use the official Line node. It's outdated.\n## Credentials\n- Use header auth\n- Username: Authorization\n- Password: Bearer {channel access token}\n\nYou can find your channel access token at the [Line API console](https://developers.line.biz/console/). Go to Messaging API and scroll to the bottom." -}, -"typeVersion": 1 -} -], -"active": false, -"pinData": {}, -"settings": { -"executionOrder": "v1" -}, -"versionId": "81216e6a-2bd8-4215-8a96-376ee520469d", -"connections": { -"Read emails (IMAP)": { -"main": [ -[ -{ -"node": "Send email to A.I. to summarize", -"type": "main", -"index": 0 -} -] -] -}, -"Send email to A.I. to summarize": { -"main": [ -[ -{ -"node": "Send summarized content to messenger", -"type": "main", -"index": 0 -} -] -] -} -} -} \ No newline at end of file diff --git a/Gmail_and_Email_Automation/create e-mail responses with fastmail and OpenAI.txt b/Gmail_and_Email_Automation/create e-mail responses with fastmail and OpenAI.json similarity index 100% rename from Gmail_and_Email_Automation/create e-mail responses with fastmail and OpenAI.txt rename to Gmail_and_Email_Automation/create e-mail responses with fastmail and OpenAI.json diff --git a/Gmail_and_Email_Automation/๐Ÿ“ˆ Receive Daily Market News from FT.com to your Microsoft outlook inbox.txt b/Gmail_and_Email_Automation/๐Ÿ“ˆ Receive Daily Market News from FT.com to your Microsoft outlook inbox.json similarity index 100% rename from Gmail_and_Email_Automation/๐Ÿ“ˆ Receive Daily Market News from FT.com to your Microsoft outlook inbox.txt rename to Gmail_and_Email_Automation/๐Ÿ“ˆ Receive Daily Market News from FT.com to your Microsoft outlook inbox.json diff --git a/Google_Drive_and_Google_Sheets/Author and Publish Blog Posts From Google Sheets.txt b/Google_Drive_and_Google_Sheets/Author and Publish Blog Posts From Google Sheets.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Author and Publish Blog Posts From Google Sheets.txt rename to Google_Drive_and_Google_Sheets/Author and Publish Blog Posts From Google Sheets.json diff --git a/Google_Drive_and_Google_Sheets/Automated End-to-End Fine-Tuning of OpenAI Models with Google Drive Integration.txt b/Google_Drive_and_Google_Sheets/Automated End-to-End Fine-Tuning of OpenAI Models with Google Drive Integration.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Automated End-to-End Fine-Tuning of OpenAI Models with Google Drive Integration.txt rename to Google_Drive_and_Google_Sheets/Automated End-to-End Fine-Tuning of OpenAI Models with Google Drive Integration.json diff --git a/Google_Drive_and_Google_Sheets/Automatic Background Removal for Images in Google Drive.txt b/Google_Drive_and_Google_Sheets/Automatic Background Removal for Images in Google Drive.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Automatic Background Removal for Images in Google Drive.txt rename to Google_Drive_and_Google_Sheets/Automatic Background Removal for Images in Google Drive.json diff --git a/Google_Drive_and_Google_Sheets/Build an OpenAI Assistant with Google Drive Integration.txt b/Google_Drive_and_Google_Sheets/Build an OpenAI Assistant with Google Drive Integration.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Build an OpenAI Assistant with Google Drive Integration.txt rename to Google_Drive_and_Google_Sheets/Build an OpenAI Assistant with Google Drive Integration.json diff --git a/Google_Drive_and_Google_Sheets/Chat with a Google Sheet using AI.txt b/Google_Drive_and_Google_Sheets/Chat with a Google Sheet using AI.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Chat with a Google Sheet using AI.txt rename to Google_Drive_and_Google_Sheets/Chat with a Google Sheet using AI.json diff --git a/Google_Drive_and_Google_Sheets/Chat with your event schedule from Google Sheets in Telegram.txt b/Google_Drive_and_Google_Sheets/Chat with your event schedule from Google Sheets in Telegram.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Chat with your event schedule from Google Sheets in Telegram.txt rename to Google_Drive_and_Google_Sheets/Chat with your event schedule from Google Sheets in Telegram.json diff --git a/Google_Drive_and_Google_Sheets/Extract Information from a Logo Sheet using forms, AI, Google Sheet and Airtable.txt b/Google_Drive_and_Google_Sheets/Extract Information from a Logo Sheet using forms, AI, Google Sheet and Airtable.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Extract Information from a Logo Sheet using forms, AI, Google Sheet and Airtable.txt rename to Google_Drive_and_Google_Sheets/Extract Information from a Logo Sheet using forms, AI, Google Sheet and Airtable.json diff --git a/Google_Drive_and_Google_Sheets/Flux Dev Image Generation (Fal.ai) to Google Drive.txt b/Google_Drive_and_Google_Sheets/Flux Dev Image Generation (Fal.ai) to Google Drive.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Flux Dev Image Generation (Fal.ai) to Google Drive.txt rename to Google_Drive_and_Google_Sheets/Flux Dev Image Generation (Fal.ai) to Google Drive.json diff --git a/Google_Drive_and_Google_Sheets/Qualify new leads in Google Sheets via OpenAI_s GPT-4.txt b/Google_Drive_and_Google_Sheets/Qualify new leads in Google Sheets via OpenAI_s GPT-4.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Qualify new leads in Google Sheets via OpenAI_s GPT-4.txt rename to Google_Drive_and_Google_Sheets/Qualify new leads in Google Sheets via OpenAI_s GPT-4.json diff --git a/Google_Drive_and_Google_Sheets/RAG Chatbot for Company Documents using Google Drive and Gemini.txt b/Google_Drive_and_Google_Sheets/RAG Chatbot for Company Documents using Google Drive and Gemini.json similarity index 100% rename from Google_Drive_and_Google_Sheets/RAG Chatbot for Company Documents using Google Drive and Gemini.txt rename to Google_Drive_and_Google_Sheets/RAG Chatbot for Company Documents using Google Drive and Gemini.json diff --git a/Google_Drive_and_Google_Sheets/RAG_Context-Aware Chunking _ Google Drive to Pinecone via OpenRouter & Gemini.txt b/Google_Drive_and_Google_Sheets/RAG_Context-Aware Chunking _ Google Drive to Pinecone via OpenRouter & Gemini.json similarity index 100% rename from Google_Drive_and_Google_Sheets/RAG_Context-Aware Chunking _ Google Drive to Pinecone via OpenRouter & Gemini.txt rename to Google_Drive_and_Google_Sheets/RAG_Context-Aware Chunking _ Google Drive to Pinecone via OpenRouter & Gemini.json diff --git a/Google_Drive_and_Google_Sheets/Screen Applicants With AI, notify HR and save them in a Google Sheet.txt b/Google_Drive_and_Google_Sheets/Screen Applicants With AI, notify HR and save them in a Google Sheet.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Screen Applicants With AI, notify HR and save them in a Google Sheet.txt rename to Google_Drive_and_Google_Sheets/Screen Applicants With AI, notify HR and save them in a Google Sheet.json diff --git a/Google_Drive_and_Google_Sheets/Simple Expense Tracker with n8n Chat, AI Agent and Google Sheets.txt b/Google_Drive_and_Google_Sheets/Simple Expense Tracker with n8n Chat, AI Agent and Google Sheets.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Simple Expense Tracker with n8n Chat, AI Agent and Google Sheets.txt rename to Google_Drive_and_Google_Sheets/Simple Expense Tracker with n8n Chat, AI Agent and Google Sheets.json diff --git a/Google_Drive_and_Google_Sheets/Summarize Google Sheets form feedback via OpenAI_s GPT-4.txt b/Google_Drive_and_Google_Sheets/Summarize Google Sheets form feedback via OpenAI_s GPT-4.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Summarize Google Sheets form feedback via OpenAI_s GPT-4.txt rename to Google_Drive_and_Google_Sheets/Summarize Google Sheets form feedback via OpenAI_s GPT-4.json diff --git a/Google_Drive_and_Google_Sheets/Summarize the New Documents from Google Drive and Save Summary in Google Sheet.txt b/Google_Drive_and_Google_Sheets/Summarize the New Documents from Google Drive and Save Summary in Google Sheet.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Summarize the New Documents from Google Drive and Save Summary in Google Sheet.txt rename to Google_Drive_and_Google_Sheets/Summarize the New Documents from Google Drive and Save Summary in Google Sheet.json diff --git a/Google_Drive_and_Google_Sheets/Upload to Instagram and Tiktok from Google Drive.txt b/Google_Drive_and_Google_Sheets/Upload to Instagram and Tiktok from Google Drive.json similarity index 100% rename from Google_Drive_and_Google_Sheets/Upload to Instagram and Tiktok from Google Drive.txt rename to Google_Drive_and_Google_Sheets/Upload to Instagram and Tiktok from Google Drive.json diff --git a/Google_Drive_and_Google_Sheets/โœจ Vision-Based AI Agent Scraper - with Google Sheets, ScrapingBee, and Gemini.txt b/Google_Drive_and_Google_Sheets/โœจ Vision-Based AI Agent Scraper - with Google Sheets, ScrapingBee, and Gemini.json similarity index 100% rename from Google_Drive_and_Google_Sheets/โœจ Vision-Based AI Agent Scraper - with Google Sheets, ScrapingBee, and Gemini.txt rename to Google_Drive_and_Google_Sheets/โœจ Vision-Based AI Agent Scraper - with Google Sheets, ScrapingBee, and Gemini.json diff --git a/HR_and_Recruitment/BambooHR AI-Powered Company Policies and Benefits Chatbot.txt b/HR_and_Recruitment/BambooHR AI-Powered Company Policies and Benefits Chatbot.json similarity index 100% rename from HR_and_Recruitment/BambooHR AI-Powered Company Policies and Benefits Chatbot.txt rename to HR_and_Recruitment/BambooHR AI-Powered Company Policies and Benefits Chatbot.json diff --git a/HR_and_Recruitment/CV Screening with OpenAI.txt b/HR_and_Recruitment/CV Screening with OpenAI.json similarity index 100% rename from HR_and_Recruitment/CV Screening with OpenAI.txt rename to HR_and_Recruitment/CV Screening with OpenAI.json diff --git a/HR_and_Recruitment/HR & IT Helpdesk Chatbot with Audio Transcription.txt b/HR_and_Recruitment/HR & IT Helpdesk Chatbot with Audio Transcription.json similarity index 100% rename from HR_and_Recruitment/HR & IT Helpdesk Chatbot with Audio Transcription.txt rename to HR_and_Recruitment/HR & IT Helpdesk Chatbot with Audio Transcription.json diff --git a/HR_and_Recruitment/HR Job Posting and Evaluation with AI.txt b/HR_and_Recruitment/HR Job Posting and Evaluation with AI.json similarity index 100% rename from HR_and_Recruitment/HR Job Posting and Evaluation with AI.txt rename to HR_and_Recruitment/HR Job Posting and Evaluation with AI.json diff --git a/Instagram_Twitter_Social_Media/AI agent for Instagram DM_inbox. Manychat + Open AI integration.txt b/Instagram_Twitter_Social_Media/AI agent for Instagram DM_inbox. Manychat + Open AI integration.json similarity index 100% rename from Instagram_Twitter_Social_Media/AI agent for Instagram DM_inbox. Manychat + Open AI integration.txt rename to Instagram_Twitter_Social_Media/AI agent for Instagram DM_inbox. Manychat + Open AI integration.json diff --git a/Instagram_Twitter_Social_Media/Create dynamic Twitter profile banner.txt b/Instagram_Twitter_Social_Media/Create dynamic Twitter profile banner.json similarity index 100% rename from Instagram_Twitter_Social_Media/Create dynamic Twitter profile banner.txt rename to Instagram_Twitter_Social_Media/Create dynamic Twitter profile banner.json diff --git a/Instagram_Twitter_Social_Media/Generate Instagram Content from Top Trends with AI Image Generation.txt b/Instagram_Twitter_Social_Media/Generate Instagram Content from Top Trends with AI Image Generation.json similarity index 100% rename from Instagram_Twitter_Social_Media/Generate Instagram Content from Top Trends with AI Image Generation.txt rename to Instagram_Twitter_Social_Media/Generate Instagram Content from Top Trends with AI Image Generation.json diff --git a/Instagram_Twitter_Social_Media/OpenAI-powered tweet generator.txt b/Instagram_Twitter_Social_Media/OpenAI-powered tweet generator.json similarity index 100% rename from Instagram_Twitter_Social_Media/OpenAI-powered tweet generator.txt rename to Instagram_Twitter_Social_Media/OpenAI-powered tweet generator.json diff --git a/Instagram_Twitter_Social_Media/Post New YouTube Videos to X.txt b/Instagram_Twitter_Social_Media/Post New YouTube Videos to X.json similarity index 100% rename from Instagram_Twitter_Social_Media/Post New YouTube Videos to X.txt rename to Instagram_Twitter_Social_Media/Post New YouTube Videos to X.json diff --git a/Instagram_Twitter_Social_Media/Reddit AI digest.txt b/Instagram_Twitter_Social_Media/Reddit AI digest.json similarity index 100% rename from Instagram_Twitter_Social_Media/Reddit AI digest.txt rename to Instagram_Twitter_Social_Media/Reddit AI digest.json diff --git a/Instagram_Twitter_Social_Media/Social Media Analysis and Automated Email Generation.txt b/Instagram_Twitter_Social_Media/Social Media Analysis and Automated Email Generation.json similarity index 100% rename from Instagram_Twitter_Social_Media/Social Media Analysis and Automated Email Generation.txt rename to Instagram_Twitter_Social_Media/Social Media Analysis and Automated Email Generation.json diff --git a/Instagram_Twitter_Social_Media/Speed Up Social Media Banners With BannerBear.com.txt b/Instagram_Twitter_Social_Media/Speed Up Social Media Banners With BannerBear.com.json similarity index 100% rename from Instagram_Twitter_Social_Media/Speed Up Social Media Banners With BannerBear.com.txt rename to Instagram_Twitter_Social_Media/Speed Up Social Media Banners With BannerBear.com.json diff --git a/Instagram_Twitter_Social_Media/Twitter Virtual AI Influencer.txt b/Instagram_Twitter_Social_Media/Twitter Virtual AI Influencer.json similarity index 100% rename from Instagram_Twitter_Social_Media/Twitter Virtual AI Influencer.txt rename to Instagram_Twitter_Social_Media/Twitter Virtual AI Influencer.json diff --git a/Instagram_Twitter_Social_Media/Update Twitter banner using HTTP request.txt b/Instagram_Twitter_Social_Media/Update Twitter banner using HTTP request.json similarity index 100% rename from Instagram_Twitter_Social_Media/Update Twitter banner using HTTP request.txt rename to Instagram_Twitter_Social_Media/Update Twitter banner using HTTP request.json diff --git a/Notion/Add positive feedback messages to a table in Notion.txt b/Notion/Add positive feedback messages to a table in Notion.json similarity index 100% rename from Notion/Add positive feedback messages to a table in Notion.txt rename to Notion/Add positive feedback messages to a table in Notion.json diff --git a/Notion/Analyse papers from Hugging Face with AI and store them in Notion.txt b/Notion/Analyse papers from Hugging Face with AI and store them in Notion.json similarity index 100% rename from Notion/Analyse papers from Hugging Face with AI and store them in Notion.txt rename to Notion/Analyse papers from Hugging Face with AI and store them in Notion.json diff --git a/Notion/Automate Competitor Research with Exa.ai, Notion and AI Agents.txt b/Notion/Automate Competitor Research with Exa.ai, Notion and AI Agents.json similarity index 100% rename from Notion/Automate Competitor Research with Exa.ai, Notion and AI Agents.txt rename to Notion/Automate Competitor Research with Exa.ai, Notion and AI Agents.json diff --git a/Notion/Automate LinkedIn Outreach with Notion and OpenAI.txt b/Notion/Automate LinkedIn Outreach with Notion and OpenAI.json similarity index 100% rename from Notion/Automate LinkedIn Outreach with Notion and OpenAI.txt rename to Notion/Automate LinkedIn Outreach with Notion and OpenAI.json diff --git a/Notion/Notion AI Assistant Generator.txt b/Notion/Notion AI Assistant Generator.json similarity index 100% rename from Notion/Notion AI Assistant Generator.txt rename to Notion/Notion AI Assistant Generator.json diff --git a/Notion/Notion knowledge base AI assistant.txt b/Notion/Notion knowledge base AI assistant.json similarity index 100% rename from Notion/Notion knowledge base AI assistant.txt rename to Notion/Notion knowledge base AI assistant.json diff --git a/Notion/Notion to Pinecone Vector Store Integration.txt b/Notion/Notion to Pinecone Vector Store Integration.json similarity index 100% rename from Notion/Notion to Pinecone Vector Store Integration.txt rename to Notion/Notion to Pinecone Vector Store Integration.json diff --git a/Notion/Store Notion_s Pages as Vector Documents into Supabase with OpenAI.txt b/Notion/Store Notion_s Pages as Vector Documents into Supabase with OpenAI.json similarity index 100% rename from Notion/Store Notion_s Pages as Vector Documents into Supabase with OpenAI.txt rename to Notion/Store Notion_s Pages as Vector Documents into Supabase with OpenAI.json diff --git a/Notion/Turn Emails into AI-Enhanced Tasks in Notion (Multi-User Support) with Gmail, Airtable and Softr.txt b/Notion/Turn Emails into AI-Enhanced Tasks in Notion (Multi-User Support) with Gmail, Airtable and Softr.json similarity index 100% rename from Notion/Turn Emails into AI-Enhanced Tasks in Notion (Multi-User Support) with Gmail, Airtable and Softr.txt rename to Notion/Turn Emails into AI-Enhanced Tasks in Notion (Multi-User Support) with Gmail, Airtable and Softr.json diff --git a/Notion/Upsert huge documents in a vector store with Supabase and Notion.txt b/Notion/Upsert huge documents in a vector store with Supabase and Notion.json similarity index 100% rename from Notion/Upsert huge documents in a vector store with Supabase and Notion.txt rename to Notion/Upsert huge documents in a vector store with Supabase and Notion.json diff --git a/OpenAI_and_LLMs/AI Agent To Chat With Files In Supabase Storage.txt b/OpenAI_and_LLMs/AI Agent To Chat With Files In Supabase Storage.json similarity index 100% rename from OpenAI_and_LLMs/AI Agent To Chat With Files In Supabase Storage.txt rename to OpenAI_and_LLMs/AI Agent To Chat With Files In Supabase Storage.json diff --git a/OpenAI_and_LLMs/AI Agent _ Google calendar assistant using OpenAI.txt b/OpenAI_and_LLMs/AI Agent _ Google calendar assistant using OpenAI.json similarity index 100% rename from OpenAI_and_LLMs/AI Agent _ Google calendar assistant using OpenAI.txt rename to OpenAI_and_LLMs/AI Agent _ Google calendar assistant using OpenAI.json diff --git a/OpenAI_and_LLMs/AI Agent for realtime insights on meetings.txt b/OpenAI_and_LLMs/AI Agent for realtime insights on meetings.json similarity index 100% rename from OpenAI_and_LLMs/AI Agent for realtime insights on meetings.txt rename to OpenAI_and_LLMs/AI Agent for realtime insights on meetings.json diff --git a/OpenAI_and_LLMs/AI Agent to chat with Supabase_PostgreSQL DB.txt b/OpenAI_and_LLMs/AI Agent to chat with Supabase_PostgreSQL DB.json similarity index 100% rename from OpenAI_and_LLMs/AI Agent to chat with Supabase_PostgreSQL DB.txt rename to OpenAI_and_LLMs/AI Agent to chat with Supabase_PostgreSQL DB.json diff --git a/OpenAI_and_LLMs/AI Agent to chat with you Search Console Data, using OpenAI and Postgres.txt b/OpenAI_and_LLMs/AI Agent to chat with you Search Console Data, using OpenAI and Postgres.json similarity index 100% rename from OpenAI_and_LLMs/AI Agent to chat with you Search Console Data, using OpenAI and Postgres.txt rename to OpenAI_and_LLMs/AI Agent to chat with you Search Console Data, using OpenAI and Postgres.json diff --git a/OpenAI_and_LLMs/AI Agent with Ollama for current weather and wiki.txt b/OpenAI_and_LLMs/AI Agent with Ollama for current weather and wiki.json similarity index 100% rename from OpenAI_and_LLMs/AI Agent with Ollama for current weather and wiki.txt rename to OpenAI_and_LLMs/AI Agent with Ollama for current weather and wiki.json diff --git a/OpenAI_and_LLMs/AI Automated HR Workflow for CV Analysis and Candidate Evaluation.txt b/OpenAI_and_LLMs/AI Automated HR Workflow for CV Analysis and Candidate Evaluation.json similarity index 100% rename from OpenAI_and_LLMs/AI Automated HR Workflow for CV Analysis and Candidate Evaluation.txt rename to OpenAI_and_LLMs/AI Automated HR Workflow for CV Analysis and Candidate Evaluation.json diff --git a/OpenAI_and_LLMs/AI Crew to Automate Fundamental Stock Analysis - Q&A Workflow.txt b/OpenAI_and_LLMs/AI Crew to Automate Fundamental Stock Analysis - Q&A Workflow.json similarity index 100% rename from OpenAI_and_LLMs/AI Crew to Automate Fundamental Stock Analysis - Q&A Workflow.txt rename to OpenAI_and_LLMs/AI Crew to Automate Fundamental Stock Analysis - Q&A Workflow.json diff --git a/OpenAI_and_LLMs/AI Customer feedback sentiment analysis.txt b/OpenAI_and_LLMs/AI Customer feedback sentiment analysis.json similarity index 100% rename from OpenAI_and_LLMs/AI Customer feedback sentiment analysis.txt rename to OpenAI_and_LLMs/AI Customer feedback sentiment analysis.json diff --git a/OpenAI_and_LLMs/AI Data Extraction with Dynamic Prompts and Airtable.txt b/OpenAI_and_LLMs/AI Data Extraction with Dynamic Prompts and Airtable.json similarity index 100% rename from OpenAI_and_LLMs/AI Data Extraction with Dynamic Prompts and Airtable.txt rename to OpenAI_and_LLMs/AI Data Extraction with Dynamic Prompts and Airtable.json diff --git a/OpenAI_and_LLMs/AI Data Extraction with Dynamic Prompts and Baserow.txt b/OpenAI_and_LLMs/AI Data Extraction with Dynamic Prompts and Baserow.json similarity index 100% rename from OpenAI_and_LLMs/AI Data Extraction with Dynamic Prompts and Baserow.txt rename to OpenAI_and_LLMs/AI Data Extraction with Dynamic Prompts and Baserow.json diff --git a/OpenAI_and_LLMs/AI Fitness Coach Strava Data Analysis and Personalized Training Insights.txt b/OpenAI_and_LLMs/AI Fitness Coach Strava Data Analysis and Personalized Training Insights.json similarity index 100% rename from OpenAI_and_LLMs/AI Fitness Coach Strava Data Analysis and Personalized Training Insights.txt rename to OpenAI_and_LLMs/AI Fitness Coach Strava Data Analysis and Personalized Training Insights.json diff --git a/OpenAI_and_LLMs/AI Powered Web Scraping with Jina, Google Sheets and OpenAI _ the EASY way.txt b/OpenAI_and_LLMs/AI Powered Web Scraping with Jina, Google Sheets and OpenAI _ the EASY way.json similarity index 100% rename from OpenAI_and_LLMs/AI Powered Web Scraping with Jina, Google Sheets and OpenAI _ the EASY way.txt rename to OpenAI_and_LLMs/AI Powered Web Scraping with Jina, Google Sheets and OpenAI _ the EASY way.json diff --git a/OpenAI_and_LLMs/AI Social Media Caption Creator creates social media post captions in Airtable.txt b/OpenAI_and_LLMs/AI Social Media Caption Creator creates social media post captions in Airtable.json similarity index 100% rename from OpenAI_and_LLMs/AI Social Media Caption Creator creates social media post captions in Airtable.txt rename to OpenAI_and_LLMs/AI Social Media Caption Creator creates social media post captions in Airtable.json diff --git a/OpenAI_and_LLMs/AI Voice Chat using Webhook, Memory Manager, OpenAI, Google Gemini & ElevenLabs.txt b/OpenAI_and_LLMs/AI Voice Chat using Webhook, Memory Manager, OpenAI, Google Gemini & ElevenLabs.json similarity index 100% rename from OpenAI_and_LLMs/AI Voice Chat using Webhook, Memory Manager, OpenAI, Google Gemini & ElevenLabs.txt rename to OpenAI_and_LLMs/AI Voice Chat using Webhook, Memory Manager, OpenAI, Google Gemini & ElevenLabs.json diff --git a/OpenAI_and_LLMs/AI Voice Chatbot with ElevenLabs & OpenAI for Customer Service and Restaurants.txt b/OpenAI_and_LLMs/AI Voice Chatbot with ElevenLabs & OpenAI for Customer Service and Restaurants.json similarity index 100% rename from OpenAI_and_LLMs/AI Voice Chatbot with ElevenLabs & OpenAI for Customer Service and Restaurants.txt rename to OpenAI_and_LLMs/AI Voice Chatbot with ElevenLabs & OpenAI for Customer Service and Restaurants.json diff --git a/OpenAI_and_LLMs/AI Youtube Trend Finder Based On Niche.txt b/OpenAI_and_LLMs/AI Youtube Trend Finder Based On Niche.json similarity index 100% rename from OpenAI_and_LLMs/AI Youtube Trend Finder Based On Niche.txt rename to OpenAI_and_LLMs/AI Youtube Trend Finder Based On Niche.json diff --git a/OpenAI_and_LLMs/AI agent chat.txt b/OpenAI_and_LLMs/AI agent chat.json similarity index 100% rename from OpenAI_and_LLMs/AI agent chat.txt rename to OpenAI_and_LLMs/AI agent chat.json diff --git a/OpenAI_and_LLMs/AI agent that can scrape webpages.txt b/OpenAI_and_LLMs/AI agent that can scrape webpages.json similarity index 100% rename from OpenAI_and_LLMs/AI agent that can scrape webpages.txt rename to OpenAI_and_LLMs/AI agent that can scrape webpages.json diff --git a/OpenAI_and_LLMs/AI chat with any data source (using the n8n workflow tool).txt b/OpenAI_and_LLMs/AI chat with any data source (using the n8n workflow tool).json similarity index 100% rename from OpenAI_and_LLMs/AI chat with any data source (using the n8n workflow tool).txt rename to OpenAI_and_LLMs/AI chat with any data source (using the n8n workflow tool).json diff --git a/OpenAI_and_LLMs/AI chatbot that can search the web.txt b/OpenAI_and_LLMs/AI chatbot that can search the web.json similarity index 100% rename from OpenAI_and_LLMs/AI chatbot that can search the web.txt rename to OpenAI_and_LLMs/AI chatbot that can search the web.json diff --git a/OpenAI_and_LLMs/AI web researcher for sales.txt b/OpenAI_and_LLMs/AI web researcher for sales.json similarity index 100% rename from OpenAI_and_LLMs/AI web researcher for sales.txt rename to OpenAI_and_LLMs/AI web researcher for sales.json diff --git a/OpenAI_and_LLMs/AI-Driven Lead Management and Inquiry Automation with ERPNext & n8n.txt b/OpenAI_and_LLMs/AI-Driven Lead Management and Inquiry Automation with ERPNext & n8n.json similarity index 100% rename from OpenAI_and_LLMs/AI-Driven Lead Management and Inquiry Automation with ERPNext & n8n.txt rename to OpenAI_and_LLMs/AI-Driven Lead Management and Inquiry Automation with ERPNext & n8n.json diff --git a/OpenAI_and_LLMs/AI-Generated Summary Block for WordPress Posts.txt b/OpenAI_and_LLMs/AI-Generated Summary Block for WordPress Posts.json similarity index 100% rename from OpenAI_and_LLMs/AI-Generated Summary Block for WordPress Posts.txt rename to OpenAI_and_LLMs/AI-Generated Summary Block for WordPress Posts.json diff --git a/OpenAI_and_LLMs/AI-Powered Candidate Shortlisting Automation for ERPNext.txt b/OpenAI_and_LLMs/AI-Powered Candidate Shortlisting Automation for ERPNext.json similarity index 100% rename from OpenAI_and_LLMs/AI-Powered Candidate Shortlisting Automation for ERPNext.txt rename to OpenAI_and_LLMs/AI-Powered Candidate Shortlisting Automation for ERPNext.json diff --git a/OpenAI_and_LLMs/AI-Powered Email Automation for Business_ Summarize & Respond with RAG.txt b/OpenAI_and_LLMs/AI-Powered Email Automation for Business_ Summarize & Respond with RAG.json similarity index 100% rename from OpenAI_and_LLMs/AI-Powered Email Automation for Business_ Summarize & Respond with RAG.txt rename to OpenAI_and_LLMs/AI-Powered Email Automation for Business_ Summarize & Respond with RAG.json diff --git a/OpenAI_and_LLMs/AI-Powered RAG Workflow For Stock Earnings Report Analysis.txt b/OpenAI_and_LLMs/AI-Powered RAG Workflow For Stock Earnings Report Analysis.json similarity index 100% rename from OpenAI_and_LLMs/AI-Powered RAG Workflow For Stock Earnings Report Analysis.txt rename to OpenAI_and_LLMs/AI-Powered RAG Workflow For Stock Earnings Report Analysis.json diff --git a/OpenAI_and_LLMs/AI-Powered Social Media Amplifier.txt b/OpenAI_and_LLMs/AI-Powered Social Media Amplifier.json similarity index 100% rename from OpenAI_and_LLMs/AI-Powered Social Media Amplifier.txt rename to OpenAI_and_LLMs/AI-Powered Social Media Amplifier.json diff --git a/OpenAI_and_LLMs/AI-powered WooCommerce Support-Agent.txt b/OpenAI_and_LLMs/AI-powered WooCommerce Support-Agent.json similarity index 100% rename from OpenAI_and_LLMs/AI-powered WooCommerce Support-Agent.txt rename to OpenAI_and_LLMs/AI-powered WooCommerce Support-Agent.json diff --git a/OpenAI_and_LLMs/AI_ Ask questions about any data source (using the n8n workflow retriever).txt b/OpenAI_and_LLMs/AI_ Ask questions about any data source (using the n8n workflow retriever).json similarity index 100% rename from OpenAI_and_LLMs/AI_ Ask questions about any data source (using the n8n workflow retriever).txt rename to OpenAI_and_LLMs/AI_ Ask questions about any data source (using the n8n workflow retriever).json diff --git a/OpenAI_and_LLMs/AI_ Summarize podcast episode and enhance using Wikipedia.txt b/OpenAI_and_LLMs/AI_ Summarize podcast episode and enhance using Wikipedia.json similarity index 100% rename from OpenAI_and_LLMs/AI_ Summarize podcast episode and enhance using Wikipedia.txt rename to OpenAI_and_LLMs/AI_ Summarize podcast episode and enhance using Wikipedia.json diff --git a/OpenAI_and_LLMs/Actioning Your Meeting Next Steps using Transcripts and AI.txt b/OpenAI_and_LLMs/Actioning Your Meeting Next Steps using Transcripts and AI.json similarity index 100% rename from OpenAI_and_LLMs/Actioning Your Meeting Next Steps using Transcripts and AI.txt rename to OpenAI_and_LLMs/Actioning Your Meeting Next Steps using Transcripts and AI.json diff --git a/OpenAI_and_LLMs/Advanced AI Demo (Presented at AI Developers #14 meetup).txt b/OpenAI_and_LLMs/Advanced AI Demo (Presented at AI Developers #14 meetup).json similarity index 100% rename from OpenAI_and_LLMs/Advanced AI Demo (Presented at AI Developers #14 meetup).txt rename to OpenAI_and_LLMs/Advanced AI Demo (Presented at AI Developers #14 meetup).json diff --git a/OpenAI_and_LLMs/Ask a human for help when the AI doesn_t know the answer.txt b/OpenAI_and_LLMs/Ask a human for help when the AI doesn_t know the answer.json similarity index 100% rename from OpenAI_and_LLMs/Ask a human for help when the AI doesn_t know the answer.txt rename to OpenAI_and_LLMs/Ask a human for help when the AI doesn_t know the answer.json diff --git a/OpenAI_and_LLMs/Automate Customer Support Issue Resolution using AI Text Classifier.txt b/OpenAI_and_LLMs/Automate Customer Support Issue Resolution using AI Text Classifier.json similarity index 100% rename from OpenAI_and_LLMs/Automate Customer Support Issue Resolution using AI Text Classifier.txt rename to OpenAI_and_LLMs/Automate Customer Support Issue Resolution using AI Text Classifier.json diff --git a/OpenAI_and_LLMs/Automate Image Validation Tasks using AI Vision.txt b/OpenAI_and_LLMs/Automate Image Validation Tasks using AI Vision.json similarity index 100% rename from OpenAI_and_LLMs/Automate Image Validation Tasks using AI Vision.txt rename to OpenAI_and_LLMs/Automate Image Validation Tasks using AI Vision.json diff --git a/OpenAI_and_LLMs/Automate Your RFP Process with OpenAI Assistants.txt b/OpenAI_and_LLMs/Automate Your RFP Process with OpenAI Assistants.json similarity index 100% rename from OpenAI_and_LLMs/Automate Your RFP Process with OpenAI Assistants.txt rename to OpenAI_and_LLMs/Automate Your RFP Process with OpenAI Assistants.json diff --git a/OpenAI_and_LLMs/Chat Assistant (OpenAI assistant) with Postgres Memory And API Calling Capabalities.txt b/OpenAI_and_LLMs/Chat Assistant (OpenAI assistant) with Postgres Memory And API Calling Capabalities.json similarity index 100% rename from OpenAI_and_LLMs/Chat Assistant (OpenAI assistant) with Postgres Memory And API Calling Capabalities.txt rename to OpenAI_and_LLMs/Chat Assistant (OpenAI assistant) with Postgres Memory And API Calling Capabalities.json diff --git a/OpenAI_and_LLMs/Chat with OpenAI Assistant (by adding a memory).txt b/OpenAI_and_LLMs/Chat with OpenAI Assistant (by adding a memory).json similarity index 100% rename from OpenAI_and_LLMs/Chat with OpenAI Assistant (by adding a memory).txt rename to OpenAI_and_LLMs/Chat with OpenAI Assistant (by adding a memory).json diff --git a/OpenAI_and_LLMs/Chat with local LLMs using n8n and Ollama.txt b/OpenAI_and_LLMs/Chat with local LLMs using n8n and Ollama.json similarity index 100% rename from OpenAI_and_LLMs/Chat with local LLMs using n8n and Ollama.txt rename to OpenAI_and_LLMs/Chat with local LLMs using n8n and Ollama.json diff --git a/OpenAI_and_LLMs/Configure your own Image Creation API Using OpenAI DALLE-3.txt b/OpenAI_and_LLMs/Configure your own Image Creation API Using OpenAI DALLE-3.json similarity index 100% rename from OpenAI_and_LLMs/Configure your own Image Creation API Using OpenAI DALLE-3.txt rename to OpenAI_and_LLMs/Configure your own Image Creation API Using OpenAI DALLE-3.json diff --git a/OpenAI_and_LLMs/Convert text to speech with OpenAI.txt b/OpenAI_and_LLMs/Convert text to speech with OpenAI.json similarity index 100% rename from OpenAI_and_LLMs/Convert text to speech with OpenAI.txt rename to OpenAI_and_LLMs/Convert text to speech with OpenAI.json diff --git a/OpenAI_and_LLMs/Create a Branded AI-Powered Website Chatbot.txt b/OpenAI_and_LLMs/Create a Branded AI-Powered Website Chatbot.json similarity index 100% rename from OpenAI_and_LLMs/Create a Branded AI-Powered Website Chatbot.txt rename to OpenAI_and_LLMs/Create a Branded AI-Powered Website Chatbot.json diff --git a/OpenAI_and_LLMs/Custom LangChain agent written in JavaScript.txt b/OpenAI_and_LLMs/Custom LangChain agent written in JavaScript.json similarity index 100% rename from OpenAI_and_LLMs/Custom LangChain agent written in JavaScript.txt rename to OpenAI_and_LLMs/Custom LangChain agent written in JavaScript.json diff --git a/OpenAI_and_LLMs/Daily Podcast Summary.txt b/OpenAI_and_LLMs/Daily Podcast Summary.json similarity index 100% rename from OpenAI_and_LLMs/Daily Podcast Summary.txt rename to OpenAI_and_LLMs/Daily Podcast Summary.json diff --git a/OpenAI_and_LLMs/Daily meetings summarization with Gemini AI.txt b/OpenAI_and_LLMs/Daily meetings summarization with Gemini AI.json similarity index 100% rename from OpenAI_and_LLMs/Daily meetings summarization with Gemini AI.txt rename to OpenAI_and_LLMs/Daily meetings summarization with Gemini AI.json diff --git a/OpenAI_and_LLMs/Detect hallucinations using specialised Ollama model bespoke-minicheck.txt b/OpenAI_and_LLMs/Detect hallucinations using specialised Ollama model bespoke-minicheck.json similarity index 100% rename from OpenAI_and_LLMs/Detect hallucinations using specialised Ollama model bespoke-minicheck.txt rename to OpenAI_and_LLMs/Detect hallucinations using specialised Ollama model bespoke-minicheck.json diff --git a/OpenAI_and_LLMs/Dynamically generate a webpage from user request using OpenAI Structured Output (1).txt b/OpenAI_and_LLMs/Dynamically generate a webpage from user request using OpenAI Structured Output.json similarity index 100% rename from OpenAI_and_LLMs/Dynamically generate a webpage from user request using OpenAI Structured Output (1).txt rename to OpenAI_and_LLMs/Dynamically generate a webpage from user request using OpenAI Structured Output.json diff --git a/OpenAI_and_LLMs/Dynamically generate a webpage from user request using OpenAI Structured Output.txt b/OpenAI_and_LLMs/Dynamically generate a webpage from user request using OpenAI Structured Output.txt deleted file mode 100644 index 0d516e7..0000000 --- a/OpenAI_and_LLMs/Dynamically generate a webpage from user request using OpenAI Structured Output.txt +++ /dev/null @@ -1,224 +0,0 @@ -{ -"id": "eXiaTDyKfXpMeyLh", -"meta": { -"instanceId": "f4f5d195bb2162a0972f737368404b18be694648d365d6c6771d7b4909d28167", -"templateCredsSetupCompleted": true -}, -"name": "Dynamically generate HTML page from user request using OpenAI Structured Output", -"tags": [], -"nodes": [ -{ -"id": "b1d9659f-4cd0-4f87-844d-32b2af1dcf13", -"name": "Respond to Webhook", -"type": "n8n-nodes-base.respondToWebhook", -"position": [ -2160, -380 -], -"parameters": { -"options": { -"responseHeaders": { -"entries": [ -{ -"name": "Content-Type", -"value": "text/html; charset=UTF-8" -} -] -} -}, -"respondWith": "text", -"responseBody": "={{ $json.html }}" -}, -"typeVersion": 1.1 -}, -{ -"id": "5ca8ad3e-7702-4f07-af24-d38e94fdc4ec", -"name": "Open AI - Using Structured Output", -"type": "n8n-nodes-base.httpRequest", -"position": [ -1240, -380 -], -"parameters": { -"url": "https://api.openai.com/v1/chat/completions", -"method": "POST", -"options": {}, -"jsonBody": "={\n \"model\": \"gpt-4o-2024-08-06\",\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"You are a user interface designer and copy writter. Your job is to help users visualize their website ideas. You design elegant and simple webs, with professional text. You use Tailwind framework\"\n },\n {\n \"role\": \"user\",\n \"content\": \"{{ $json.query.query }}\"\n }\n ],\n \"response_format\":\n{\n \"type\": \"json_schema\",\n \"json_schema\": {\n \"name\": \"ui\",\n \"description\": \"Dynamically generated UI\",\n \"strict\": true,\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"description\": \"The type of the UI component\",\n \"enum\": [\n \"div\",\n \"span\",\n \"a\",\n \"p\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"ul\",\n \"ol\",\n \"li\",\n \"img\",\n \"button\",\n \"input\",\n \"textarea\",\n \"select\",\n \"option\",\n \"label\",\n \"form\",\n \"table\",\n \"thead\",\n \"tbody\",\n \"tr\",\n \"th\",\n \"td\",\n \"nav\",\n \"header\",\n \"footer\",\n \"section\",\n \"article\",\n \"aside\",\n \"main\",\n \"figure\",\n \"figcaption\",\n \"blockquote\",\n \"q\",\n \"hr\",\n \"code\",\n \"pre\",\n \"iframe\",\n \"video\",\n \"audio\",\n \"canvas\",\n \"svg\",\n \"path\",\n \"circle\",\n \"rect\",\n \"line\",\n \"polyline\",\n \"polygon\",\n \"g\",\n \"use\",\n \"symbol\"\n]\n },\n \"label\": {\n \"type\": \"string\",\n \"description\": \"The label of the UI component, used for buttons or form fields\"\n },\n \"children\": {\n \"type\": \"array\",\n \"description\": \"Nested UI components\",\n \"items\": {\n \"$ref\": \"#\"\n }\n },\n \"attributes\": {\n \"type\": \"array\",\n \"description\": \"Arbitrary attributes for the UI component, suitable for any element using Tailwind framework\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the attribute, for example onClick or className\"\n },\n \"value\": {\n \"type\": \"string\",\n \"description\": \"The value of the attribute using the Tailwind framework classes\"\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"name\", \"value\"]\n }\n }\n },\n \"required\": [\"type\", \"label\", \"children\", \"attributes\"],\n \"additionalProperties\": false\n }\n }\n}\n}", -"sendBody": true, -"sendHeaders": true, -"specifyBody": "json", -"authentication": "predefinedCredentialType", -"headerParameters": { -"parameters": [ -{ -"name": "Content-Type", -"value": "application/json" -} -] -}, -"nodeCredentialType": "openAiApi" -}, -"credentials": { -"openAiApi": { -"id": "WqzqjezKh8VtxdqA", -"name": "OpenAi account - Baptiste" -} -}, -"typeVersion": 4.2 -}, -{ -"id": "24e5ca73-a3b3-4096-8c66-d84838d89b0c", -"name": "OpenAI - JSON to HTML", -"type": "@n8n/n8n-nodes-langchain.openAi", -"position": [ -1420, -380 -], -"parameters": { -"modelId": { -"__rl": true, -"mode": "list", -"value": "gpt-4o-mini", -"cachedResultName": "GPT-4O-MINI" -}, -"options": { -"temperature": 0.2 -}, -"messages": { -"values": [ -{ -"role": "system", -"content": "You convert a JSON to HTML. \nThe JSON output has the following fields:\n- html: the page HTML\n- title: the page title" -}, -{ -"content": "={{ $json.choices[0].message.content }}" -} -] -}, -"jsonOutput": true -}, -"credentials": { -"openAiApi": { -"id": "WqzqjezKh8VtxdqA", -"name": "OpenAi account - Baptiste" -} -}, -"typeVersion": 1.3 -}, -{ -"id": "c50bdc84-ba59-4f30-acf7-496cee25068d", -"name": "Format the HTML result", -"type": "n8n-nodes-base.html", -"position": [ -1940, -380 -], -"parameters": { -"html": "\n\n\n\n \n \n {{ $json.message.content.title }}\n\n\n{{ $json.message.content.html }}\n\n" -}, -"typeVersion": 1.2 -}, -{ -"id": "193093f4-b1ce-4964-ab10-c3208e343c69", -"name": "Sticky Note", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1134, -62 -], -"parameters": { -"color": 7, -"width": 638, -"height": 503, -"content": "## Generate HTML from user query\n\n**HTTP Request node**\n- Send the user query to OpenAI, with a defined JSON response format - *using HTTP Request node as it has not yet been implemented in the OpenAI nodes*\n- The response format is inspired by the [Structured Output defined in OpenAI Introduction post](https://openai.com/index/introducing-structured-outputs-in-the-api)\n- The output is a JSON containing HTML components and attributed\n\n\n**OpenAI node**\n- Format the response from the previous node from JSON format to HTML format" -}, -"typeVersion": 1 -}, -{ -"id": "0371156a-211f-4d92-82b1-f14fe60d4b6b", -"name": "Sticky Note1", -"type": "n8n-nodes-base.stickyNote", -"position": [ -0, -60 -], -"parameters": { -"color": 7, -"width": 768, -"height": 503, -"content": "## Workflow: Dynamically generate an HTML page from a user request using OpenAI Structured Output\n\n**Overview**\n- This workflow is a experiment to build HTML pages from a user input using the new Structured Output from OpenAI.\n- The Structured Output could be used in a variety of cases. Essentially, it guarantees the output from the GPT will follow a defined structure (JSON object).\n- It uses Tailwind CSS to make it slightly nicer, but any\n\n**How it works**\n- Once active, go to the production URL and add what you'd like to build as the parameter \"query\"\n- Example: https://production_url.com?query=a%20signup%20form\n- OpenAI nodes will first output the UI as a JSON then convert it to HTML\n- Finally, the response is integrated in a HTML container and rendered to the user\n\n**Further thoughts**\n- Results are not yet amazing, it is hard to see the direct value of such an experiment\n- But it showcase the potential of the Structured Output. Being able to guarantee the output format is key to build robust AI applications." -}, -"typeVersion": 1 -}, -{ -"id": "06380781-5189-4d99-9ecd-d8913ce40fd5", -"name": "Webhook", -"type": "n8n-nodes-base.webhook", -"position": [ -820, -380 -], -"webhookId": "d962c916-6369-431a-9d80-af6e6a50fdf5", -"parameters": { -"path": "d962c916-6369-431a-9d80-af6e6a50fdf5", -"options": { -"allowedOrigins": "*" -}, -"responseMode": "responseNode" -}, -"typeVersion": 2 -} -], -"active": true, -"pinData": {}, -"settings": { -"executionOrder": "v1" -}, -"versionId": "d2307a2a-5427-4769-94a6-10eab703a788", -"connections": { -"Webhook": { -"main": [ -[ -{ -"node": "Open AI - Using Structured Output", -"type": "main", -"index": 0 -} -] -] -}, -"OpenAI - JSON to HTML": { -"main": [ -[ -{ -"node": "Format the HTML result", -"type": "main", -"index": 0 -} -] -] -}, -"Format the HTML result": { -"main": [ -[ -{ -"node": "Respond to Webhook", -"type": "main", -"index": 0 -} -] -] -}, -"Open AI - Using Structured Output": { -"main": [ -[ -{ -"node": "OpenAI - JSON to HTML", -"type": "main", -"index": 0 -} -] -] -} -} -} \ No newline at end of file diff --git a/OpenAI_and_LLMs/Easy Image Captioning with Gemini 1.5 Pro.txt b/OpenAI_and_LLMs/Easy Image Captioning with Gemini 1.5 Pro.json similarity index 100% rename from OpenAI_and_LLMs/Easy Image Captioning with Gemini 1.5 Pro.txt rename to OpenAI_and_LLMs/Easy Image Captioning with Gemini 1.5 Pro.json diff --git a/OpenAI_and_LLMs/Enrich FAQ sections on your website pages at scale with AI.txt b/OpenAI_and_LLMs/Enrich FAQ sections on your website pages at scale with AI.json similarity index 100% rename from OpenAI_and_LLMs/Enrich FAQ sections on your website pages at scale with AI.txt rename to OpenAI_and_LLMs/Enrich FAQ sections on your website pages at scale with AI.json diff --git a/OpenAI_and_LLMs/Extract personal data with self-hosted LLM Mistral NeMo.txt b/OpenAI_and_LLMs/Extract personal data with self-hosted LLM Mistral NeMo.json similarity index 100% rename from OpenAI_and_LLMs/Extract personal data with self-hosted LLM Mistral NeMo.txt rename to OpenAI_and_LLMs/Extract personal data with self-hosted LLM Mistral NeMo.json diff --git a/OpenAI_and_LLMs/Fetch Dynamic Prompts from GitHub and Auto-Populate n8n Expressions in Prompt.txt b/OpenAI_and_LLMs/Fetch Dynamic Prompts from GitHub and Auto-Populate n8n Expressions in Prompt.json similarity index 100% rename from OpenAI_and_LLMs/Fetch Dynamic Prompts from GitHub and Auto-Populate n8n Expressions in Prompt.txt rename to OpenAI_and_LLMs/Fetch Dynamic Prompts from GitHub and Auto-Populate n8n Expressions in Prompt.json diff --git a/OpenAI_and_LLMs/Flux AI Image Generator.txt b/OpenAI_and_LLMs/Flux AI Image Generator.json similarity index 100% rename from OpenAI_and_LLMs/Flux AI Image Generator.txt rename to OpenAI_and_LLMs/Flux AI Image Generator.json diff --git a/OpenAI_and_LLMs/Force AI to use a specific output format.txt b/OpenAI_and_LLMs/Force AI to use a specific output format.json similarity index 100% rename from OpenAI_and_LLMs/Force AI to use a specific output format.txt rename to OpenAI_and_LLMs/Force AI to use a specific output format.json diff --git a/OpenAI_and_LLMs/Generate 9_16 Images from Content and Brand Guidelines.txt b/OpenAI_and_LLMs/Generate 9_16 Images from Content and Brand Guidelines.json similarity index 100% rename from OpenAI_and_LLMs/Generate 9_16 Images from Content and Brand Guidelines.txt rename to OpenAI_and_LLMs/Generate 9_16 Images from Content and Brand Guidelines.json diff --git a/OpenAI_and_LLMs/Generate Text-to-Speech Using Elevenlabs via API.txt b/OpenAI_and_LLMs/Generate Text-to-Speech Using Elevenlabs via API.json similarity index 100% rename from OpenAI_and_LLMs/Generate Text-to-Speech Using Elevenlabs via API.txt rename to OpenAI_and_LLMs/Generate Text-to-Speech Using Elevenlabs via API.json diff --git a/OpenAI_and_LLMs/Generate audio from text using OpenAI and Webhook _ Text to Speech Workflow.txt b/OpenAI_and_LLMs/Generate audio from text using OpenAI and Webhook _ Text to Speech Workflow.json similarity index 100% rename from OpenAI_and_LLMs/Generate audio from text using OpenAI and Webhook _ Text to Speech Workflow.txt rename to OpenAI_and_LLMs/Generate audio from text using OpenAI and Webhook _ Text to Speech Workflow.json diff --git a/OpenAI_and_LLMs/Generating Image Embeddings via Textual Summarisation.txt b/OpenAI_and_LLMs/Generating Image Embeddings via Textual Summarisation.json similarity index 100% rename from OpenAI_and_LLMs/Generating Image Embeddings via Textual Summarisation.txt rename to OpenAI_and_LLMs/Generating Image Embeddings via Textual Summarisation.json diff --git a/OpenAI_and_LLMs/Narrating over a Video using Multimodal AI.txt b/OpenAI_and_LLMs/Narrating over a Video using Multimodal AI.json similarity index 100% rename from OpenAI_and_LLMs/Narrating over a Video using Multimodal AI.txt rename to OpenAI_and_LLMs/Narrating over a Video using Multimodal AI.json diff --git a/OpenAI_and_LLMs/OpenAI Assistant workflow_ upload file, create an Assistant, chat with it!.txt b/OpenAI_and_LLMs/OpenAI Assistant workflow_ upload file, create an Assistant, chat with it!.json similarity index 100% rename from OpenAI_and_LLMs/OpenAI Assistant workflow_ upload file, create an Assistant, chat with it!.txt rename to OpenAI_and_LLMs/OpenAI Assistant workflow_ upload file, create an Assistant, chat with it!.json diff --git a/OpenAI_and_LLMs/OpenAI assistant with custom tools.txt b/OpenAI_and_LLMs/OpenAI assistant with custom tools.json similarity index 100% rename from OpenAI_and_LLMs/OpenAI assistant with custom tools.txt rename to OpenAI_and_LLMs/OpenAI assistant with custom tools.json diff --git a/OpenAI_and_LLMs/OpenAI examples_ ChatGPT, DALLE-2, Whisper-1 โ€“ 5-in-1.txt b/OpenAI_and_LLMs/OpenAI examples_ ChatGPT, DALLE-2, Whisper-1 โ€“ 5-in-1.json similarity index 100% rename from OpenAI_and_LLMs/OpenAI examples_ ChatGPT, DALLE-2, Whisper-1 โ€“ 5-in-1.txt rename to OpenAI_and_LLMs/OpenAI examples_ ChatGPT, DALLE-2, Whisper-1 โ€“ 5-in-1.json diff --git a/OpenAI_and_LLMs/Organise Your Local File Directories With AI.txt b/OpenAI_and_LLMs/Organise Your Local File Directories With AI.json similarity index 100% rename from OpenAI_and_LLMs/Organise Your Local File Directories With AI.txt rename to OpenAI_and_LLMs/Organise Your Local File Directories With AI.json diff --git a/OpenAI_and_LLMs/Personal Shopper Chatbot for WooCommerce with RAG using Google Drive and openAI.txt b/OpenAI_and_LLMs/Personal Shopper Chatbot for WooCommerce with RAG using Google Drive and openAI.json similarity index 100% rename from OpenAI_and_LLMs/Personal Shopper Chatbot for WooCommerce with RAG using Google Drive and openAI.txt rename to OpenAI_and_LLMs/Personal Shopper Chatbot for WooCommerce with RAG using Google Drive and openAI.json diff --git a/OpenAI_and_LLMs/Prompt-based Object Detection with Gemini 2.0.txt b/OpenAI_and_LLMs/Prompt-based Object Detection with Gemini 2.0.json similarity index 100% rename from OpenAI_and_LLMs/Prompt-based Object Detection with Gemini 2.0.txt rename to OpenAI_and_LLMs/Prompt-based Object Detection with Gemini 2.0.json diff --git a/OpenAI_and_LLMs/Proxmox AI Agent with n8n and Generative AI Integration.txt b/OpenAI_and_LLMs/Proxmox AI Agent with n8n and Generative AI Integration.json similarity index 100% rename from OpenAI_and_LLMs/Proxmox AI Agent with n8n and Generative AI Integration.txt rename to OpenAI_and_LLMs/Proxmox AI Agent with n8n and Generative AI Integration.json diff --git a/OpenAI_and_LLMs/Query n8n Credentials with AI SQL Agent.txt b/OpenAI_and_LLMs/Query n8n Credentials with AI SQL Agent.json similarity index 100% rename from OpenAI_and_LLMs/Query n8n Credentials with AI SQL Agent.txt rename to OpenAI_and_LLMs/Query n8n Credentials with AI SQL Agent.json diff --git a/OpenAI_and_LLMs/Suggest meeting slots using AI.txt b/OpenAI_and_LLMs/Suggest meeting slots using AI.json similarity index 100% rename from OpenAI_and_LLMs/Suggest meeting slots using AI.txt rename to OpenAI_and_LLMs/Suggest meeting slots using AI.json diff --git a/OpenAI_and_LLMs/Summarize YouTube Videos from Transcript.txt b/OpenAI_and_LLMs/Summarize YouTube Videos from Transcript.json similarity index 100% rename from OpenAI_and_LLMs/Summarize YouTube Videos from Transcript.txt rename to OpenAI_and_LLMs/Summarize YouTube Videos from Transcript.json diff --git a/OpenAI_and_LLMs/Transform Image to Lego Style Using Line and Dall-E.txt b/OpenAI_and_LLMs/Transform Image to Lego Style Using Line and Dall-E.json similarity index 100% rename from OpenAI_and_LLMs/Transform Image to Lego Style Using Line and Dall-E.txt rename to OpenAI_and_LLMs/Transform Image to Lego Style Using Line and Dall-E.json diff --git a/OpenAI_and_LLMs/Translate audio using AI.txt b/OpenAI_and_LLMs/Translate audio using AI.json similarity index 100% rename from OpenAI_and_LLMs/Translate audio using AI.txt rename to OpenAI_and_LLMs/Translate audio using AI.json diff --git a/OpenAI_and_LLMs/Use OpenRouter in n8n versions _1.78.txt b/OpenAI_and_LLMs/Use OpenRouter in n8n versions _1.78.json similarity index 100% rename from OpenAI_and_LLMs/Use OpenRouter in n8n versions _1.78.txt rename to OpenAI_and_LLMs/Use OpenRouter in n8n versions _1.78.json diff --git a/OpenAI_and_LLMs/lemlist __ GPT-3_ Supercharge your sales workflows.txt b/OpenAI_and_LLMs/lemlist __ GPT-3_ Supercharge your sales workflows.json similarity index 100% rename from OpenAI_and_LLMs/lemlist __ GPT-3_ Supercharge your sales workflows.txt rename to OpenAI_and_LLMs/lemlist __ GPT-3_ Supercharge your sales workflows.json diff --git a/OpenAI_and_LLMs/โšกAI-Powered YouTube Video Summarization & Analysis.txt b/OpenAI_and_LLMs/โšกAI-Powered YouTube Video Summarization & Analysis.json similarity index 100% rename from OpenAI_and_LLMs/โšกAI-Powered YouTube Video Summarization & Analysis.txt rename to OpenAI_and_LLMs/โšกAI-Powered YouTube Video Summarization & Analysis.json diff --git a/OpenAI_and_LLMs/๐ŸŽจ Interactive Image Editor with FLUX.1 Fill Tool for Inpainting.txt b/OpenAI_and_LLMs/๐ŸŽจ Interactive Image Editor with FLUX.1 Fill Tool for Inpainting.json similarity index 100% rename from OpenAI_and_LLMs/๐ŸŽจ Interactive Image Editor with FLUX.1 Fill Tool for Inpainting.txt rename to OpenAI_and_LLMs/๐ŸŽจ Interactive Image Editor with FLUX.1 Fill Tool for Inpainting.json diff --git a/OpenAI_and_LLMs/๐Ÿ‹DeepSeek V3 Chat & R1 Reasoning Quick Start.txt b/OpenAI_and_LLMs/๐Ÿ‹DeepSeek V3 Chat & R1 Reasoning Quick Start.json similarity index 100% rename from OpenAI_and_LLMs/๐Ÿ‹DeepSeek V3 Chat & R1 Reasoning Quick Start.txt rename to OpenAI_and_LLMs/๐Ÿ‹DeepSeek V3 Chat & R1 Reasoning Quick Start.json diff --git a/OpenAI_and_LLMs/๐Ÿ“š Auto-generate documentation for n8n workflows with GPT and Docsify.txt b/OpenAI_and_LLMs/๐Ÿ“š Auto-generate documentation for n8n workflows with GPT and Docsify.json similarity index 100% rename from OpenAI_and_LLMs/๐Ÿ“š Auto-generate documentation for n8n workflows with GPT and Docsify.txt rename to OpenAI_and_LLMs/๐Ÿ“š Auto-generate documentation for n8n workflows with GPT and Docsify.json diff --git a/OpenAI_and_LLMs/๐Ÿ”๐Ÿฆ™๐Ÿค– Private & Local Ollama Self-Hosted AI Assistant.txt b/OpenAI_and_LLMs/๐Ÿ”๐Ÿฆ™๐Ÿค– Private & Local Ollama Self-Hosted AI Assistant.json similarity index 100% rename from OpenAI_and_LLMs/๐Ÿ”๐Ÿฆ™๐Ÿค– Private & Local Ollama Self-Hosted AI Assistant.txt rename to OpenAI_and_LLMs/๐Ÿ”๐Ÿฆ™๐Ÿค– Private & Local Ollama Self-Hosted AI Assistant.json diff --git a/OpenAI_and_LLMs/๐Ÿ”ฅ๐Ÿ“ˆ๐Ÿค– AI Agent for n8n Creators Leaderboard - Find Popular Workflows.txt b/OpenAI_and_LLMs/๐Ÿ”ฅ๐Ÿ“ˆ๐Ÿค– AI Agent for n8n Creators Leaderboard - Find Popular Workflows.json similarity index 100% rename from OpenAI_and_LLMs/๐Ÿ”ฅ๐Ÿ“ˆ๐Ÿค– AI Agent for n8n Creators Leaderboard - Find Popular Workflows.txt rename to OpenAI_and_LLMs/๐Ÿ”ฅ๐Ÿ“ˆ๐Ÿค– AI Agent for n8n Creators Leaderboard - Find Popular Workflows.json diff --git a/OpenAI_and_LLMs/๐Ÿš€ Local Multi-LLM Testing & Performance Tracker.txt b/OpenAI_and_LLMs/๐Ÿš€ Local Multi-LLM Testing & Performance Tracker.json similarity index 100% rename from OpenAI_and_LLMs/๐Ÿš€ Local Multi-LLM Testing & Performance Tracker.txt rename to OpenAI_and_LLMs/๐Ÿš€ Local Multi-LLM Testing & Performance Tracker.json diff --git a/OpenAI_and_LLMs/๐Ÿค–๐Ÿง‘_๐Ÿ’ป AI Agent for Top n8n Creators Leaderboard Reporting.txt b/OpenAI_and_LLMs/๐Ÿค–๐Ÿง‘_๐Ÿ’ป AI Agent for Top n8n Creators Leaderboard Reporting.json similarity index 100% rename from OpenAI_and_LLMs/๐Ÿค–๐Ÿง‘_๐Ÿ’ป AI Agent for Top n8n Creators Leaderboard Reporting.txt rename to OpenAI_and_LLMs/๐Ÿค–๐Ÿง‘_๐Ÿ’ป AI Agent for Top n8n Creators Leaderboard Reporting.json diff --git a/Other/ALL_unique_nodes.txt b/Other/ALL_unique_nodes.json similarity index 100% rename from Other/ALL_unique_nodes.txt rename to Other/ALL_unique_nodes.json diff --git a/Other_Integrations_and_Use_Cases/API Schema Extractor.txt b/Other_Integrations_and_Use_Cases/API Schema Extractor.json similarity index 100% rename from Other_Integrations_and_Use_Cases/API Schema Extractor.txt rename to Other_Integrations_and_Use_Cases/API Schema Extractor.json diff --git a/Other_Integrations_and_Use_Cases/Analyze feedback and send a message on Mattermost.txt b/Other_Integrations_and_Use_Cases/Analyze feedback and send a message on Mattermost.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Analyze feedback and send a message on Mattermost.txt rename to Other_Integrations_and_Use_Cases/Analyze feedback and send a message on Mattermost.json diff --git a/Other_Integrations_and_Use_Cases/Analyze feedback using AWS Comprehend and send it to a Mattermost channel.txt b/Other_Integrations_and_Use_Cases/Analyze feedback using AWS Comprehend and send it to a Mattermost channel.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Analyze feedback using AWS Comprehend and send it to a Mattermost channel.txt rename to Other_Integrations_and_Use_Cases/Analyze feedback using AWS Comprehend and send it to a Mattermost channel.json diff --git a/Other_Integrations_and_Use_Cases/Automate Pinterest Analysis & AI-Powered Content Suggestions With Pinterest API.txt b/Other_Integrations_and_Use_Cases/Automate Pinterest Analysis & AI-Powered Content Suggestions With Pinterest API.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Automate Pinterest Analysis & AI-Powered Content Suggestions With Pinterest API.txt rename to Other_Integrations_and_Use_Cases/Automate Pinterest Analysis & AI-Powered Content Suggestions With Pinterest API.json diff --git a/Other_Integrations_and_Use_Cases/Automate SIEM Alert Enrichment with MITRE ATT&CK, Qdrant & Zendesk in n8n.txt b/Other_Integrations_and_Use_Cases/Automate SIEM Alert Enrichment with MITRE ATT&CK, Qdrant & Zendesk in n8n.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Automate SIEM Alert Enrichment with MITRE ATT&CK, Qdrant & Zendesk in n8n.txt rename to Other_Integrations_and_Use_Cases/Automate SIEM Alert Enrichment with MITRE ATT&CK, Qdrant & Zendesk in n8n.json diff --git a/Other_Integrations_and_Use_Cases/Automate Screenshots with URLbox & Analyze them with AI.txt b/Other_Integrations_and_Use_Cases/Automate Screenshots with URLbox & Analyze them with AI.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Automate Screenshots with URLbox & Analyze them with AI.txt rename to Other_Integrations_and_Use_Cases/Automate Screenshots with URLbox & Analyze them with AI.json diff --git a/Other_Integrations_and_Use_Cases/Automate testimonials in Strapi with n8n.txt b/Other_Integrations_and_Use_Cases/Automate testimonials in Strapi with n8n.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Automate testimonials in Strapi with n8n.txt rename to Other_Integrations_and_Use_Cases/Automate testimonials in Strapi with n8n.json diff --git a/Other_Integrations_and_Use_Cases/Bitrix24 Chatbot Application Workflow example with Webhook Integration.txt b/Other_Integrations_and_Use_Cases/Bitrix24 Chatbot Application Workflow example with Webhook Integration.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Bitrix24 Chatbot Application Workflow example with Webhook Integration.txt rename to Other_Integrations_and_Use_Cases/Bitrix24 Chatbot Application Workflow example with Webhook Integration.json diff --git a/Other_Integrations_and_Use_Cases/ChatGPT Automatic Code Review in Gitlab MR.txt b/Other_Integrations_and_Use_Cases/ChatGPT Automatic Code Review in Gitlab MR.json similarity index 100% rename from Other_Integrations_and_Use_Cases/ChatGPT Automatic Code Review in Gitlab MR.txt rename to Other_Integrations_and_Use_Cases/ChatGPT Automatic Code Review in Gitlab MR.json diff --git a/Other_Integrations_and_Use_Cases/Classify new bugs in Linear with OpenAI_s GPT-4 and move them to the right team.txt b/Other_Integrations_and_Use_Cases/Classify new bugs in Linear with OpenAI_s GPT-4 and move them to the right team.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Classify new bugs in Linear with OpenAI_s GPT-4 and move them to the right team.txt rename to Other_Integrations_and_Use_Cases/Classify new bugs in Linear with OpenAI_s GPT-4 and move them to the right team.json diff --git a/Other_Integrations_and_Use_Cases/Create, update, and get a profile in Humantic AI.txt b/Other_Integrations_and_Use_Cases/Create, update, and get a profile in Humantic AI.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Create, update, and get a profile in Humantic AI.txt rename to Other_Integrations_and_Use_Cases/Create, update, and get a profile in Humantic AI.json diff --git a/Other_Integrations_and_Use_Cases/Enhance Customer Chat by Buffering Messages with Twilio and Redis.txt b/Other_Integrations_and_Use_Cases/Enhance Customer Chat by Buffering Messages with Twilio and Redis.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Enhance Customer Chat by Buffering Messages with Twilio and Redis.txt rename to Other_Integrations_and_Use_Cases/Enhance Customer Chat by Buffering Messages with Twilio and Redis.json diff --git a/Other_Integrations_and_Use_Cases/Hacker News Throwback Machine - See What Was Hot on This Day, Every Year!.txt b/Other_Integrations_and_Use_Cases/Hacker News Throwback Machine - See What Was Hot on This Day, Every Year!.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Hacker News Throwback Machine - See What Was Hot on This Day, Every Year!.txt rename to Other_Integrations_and_Use_Cases/Hacker News Throwback Machine - See What Was Hot on This Day, Every Year!.json diff --git a/Other_Integrations_and_Use_Cases/Handling Appointment Leads and Follow-up With Twilio, Cal.com and AI.txt b/Other_Integrations_and_Use_Cases/Handling Appointment Leads and Follow-up With Twilio, Cal.com and AI.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Handling Appointment Leads and Follow-up With Twilio, Cal.com and AI.txt rename to Other_Integrations_and_Use_Cases/Handling Appointment Leads and Follow-up With Twilio, Cal.com and AI.json diff --git a/Other_Integrations_and_Use_Cases/Integrating AI with Open-Meteo API for Enhanced Weather Forecasting.txt b/Other_Integrations_and_Use_Cases/Integrating AI with Open-Meteo API for Enhanced Weather Forecasting.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Integrating AI with Open-Meteo API for Enhanced Weather Forecasting.txt rename to Other_Integrations_and_Use_Cases/Integrating AI with Open-Meteo API for Enhanced Weather Forecasting.json diff --git a/Other_Integrations_and_Use_Cases/Introduction to the HTTP Tool.txt b/Other_Integrations_and_Use_Cases/Introduction to the HTTP Tool.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Introduction to the HTTP Tool.txt rename to Other_Integrations_and_Use_Cases/Introduction to the HTTP Tool.json diff --git a/Other_Integrations_and_Use_Cases/KB Tool - Confluence Knowledge Base.txt b/Other_Integrations_and_Use_Cases/KB Tool - Confluence Knowledge Base.json similarity index 100% rename from Other_Integrations_and_Use_Cases/KB Tool - Confluence Knowledge Base.txt rename to Other_Integrations_and_Use_Cases/KB Tool - Confluence Knowledge Base.json diff --git a/Other_Integrations_and_Use_Cases/LINE Assistant with Google Calendar and Gmail Integration.txt b/Other_Integrations_and_Use_Cases/LINE Assistant with Google Calendar and Gmail Integration.json similarity index 100% rename from Other_Integrations_and_Use_Cases/LINE Assistant with Google Calendar and Gmail Integration.txt rename to Other_Integrations_and_Use_Cases/LINE Assistant with Google Calendar and Gmail Integration.json diff --git a/Other_Integrations_and_Use_Cases/Monthly Spotify Track Archiving and Playlist Classification.txt b/Other_Integrations_and_Use_Cases/Monthly Spotify Track Archiving and Playlist Classification.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Monthly Spotify Track Archiving and Playlist Classification.txt rename to Other_Integrations_and_Use_Cases/Monthly Spotify Track Archiving and Playlist Classification.json diff --git a/Other_Integrations_and_Use_Cases/Obsidian Notes Read Aloud using AI_ Available as a Podcast Feed.txt b/Other_Integrations_and_Use_Cases/Obsidian Notes Read Aloud using AI_ Available as a Podcast Feed.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Obsidian Notes Read Aloud using AI_ Available as a Podcast Feed.txt rename to Other_Integrations_and_Use_Cases/Obsidian Notes Read Aloud using AI_ Available as a Podcast Feed.json diff --git a/Other_Integrations_and_Use_Cases/Optimize & Update Printify Title and Description Workflow.txt b/Other_Integrations_and_Use_Cases/Optimize & Update Printify Title and Description Workflow.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Optimize & Update Printify Title and Description Workflow.txt rename to Other_Integrations_and_Use_Cases/Optimize & Update Printify Title and Description Workflow.json diff --git a/Other_Integrations_and_Use_Cases/Qualify replies from Pipedrive persons with AI.txt b/Other_Integrations_and_Use_Cases/Qualify replies from Pipedrive persons with AI.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Qualify replies from Pipedrive persons with AI.txt rename to Other_Integrations_and_Use_Cases/Qualify replies from Pipedrive persons with AI.json diff --git a/Other_Integrations_and_Use_Cases/Siri AI Agent_ Apple Shortcuts powered voice template.txt b/Other_Integrations_and_Use_Cases/Siri AI Agent_ Apple Shortcuts powered voice template.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Siri AI Agent_ Apple Shortcuts powered voice template.txt rename to Other_Integrations_and_Use_Cases/Siri AI Agent_ Apple Shortcuts powered voice template.json diff --git a/Other_Integrations_and_Use_Cases/Text automations using Apple Shortcuts (1).txt b/Other_Integrations_and_Use_Cases/Text automations using Apple Shortcuts.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Text automations using Apple Shortcuts (1).txt rename to Other_Integrations_and_Use_Cases/Text automations using Apple Shortcuts.json diff --git a/Other_Integrations_and_Use_Cases/Text automations using Apple Shortcuts.txt b/Other_Integrations_and_Use_Cases/Text automations using Apple Shortcuts.txt deleted file mode 100644 index 45c3dda..0000000 --- a/Other_Integrations_and_Use_Cases/Text automations using Apple Shortcuts.txt +++ /dev/null @@ -1,504 +0,0 @@ -{ -"meta": { -"instanceId": "f4f5d195bb2162a0972f737368404b18be694648d365d6c6771d7b4909d28167" -}, -"nodes": [ -{ -"id": "b165115d-5505-4e03-bf41-c21320cb8b09", -"name": "Sticky Note1", -"type": "n8n-nodes-base.stickyNote", -"position": [ -80, -40 -], -"parameters": { -"color": 7, -"width": 681.8337349708484, -"height": 843.1482165886073, -"content": "## Workflow: Text automations using Apple Shortcuts\n\n**Overview**\n- This workflow answers user requests sent via Apple Shortcuts\n- Several Shortcuts call the same webhook, with a query and a type of query\n- Types of query are:\n - translate to english\n - translate to spanish\n - correct grammar (without changing the actual content)\n - make content shorter\n - make content longer\n\n\n**How it works**\n- Select a text you are writing\n- Launch the shortcut\n- The text is sent to the webhook\n- Depending on the type of request, a different prompt is used\n- Each request is sent to an OpenAI node\n- The workflow responds to the request with the response from GPT\n- Shortcut replace the selected text with the new one\n\n**How to use it**\n- Activate the workflow\n- Download [this Shortcut template](https://drive.usercontent.google.com/u/0/uc?id=16zs5iJX7KeX_4e0SoV49_KfbU7-EF0NE&export=download)\n- Install the shortcut\n- In step 2 of the shortcut, change the url of the Webhook\n- In Shortcut details, \"add Keyboard Shortcut\" with the key you want to use to launch the shortcut\n- Go to settings, advanced, check \"Allow running scripts\"\n- You are ready to use the shortcut. Select a text and hit the keyboard shortcut you just defined\n\n\n**Notes**\n- If you use rich formatting, you'll have to test multiple ways to replace characters in the output. For example, you might use `{{ $json.message.content.output.replaceAll('\\n', \"
\") }}` in the \"Respond to Shortcut\" node depending on the app you use most.\n- This is a basic example that you can extend and modify at your will\n- You can duplicate and modify the example shortcut based on your need, as well as making new automations in this workflow." -}, -"typeVersion": 1 -}, -{ -"id": "c45400b8-d3b8-47f7-81c6-d791bce4c266", -"name": "Switch", -"type": "n8n-nodes-base.switch", -"position": [ -1020, -380 -], -"parameters": { -"rules": { -"values": [ -{ -"outputKey": "spanish", -"conditions": { -"options": { -"version": 2, -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"operator": { -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.body.type }}", -"rightValue": "spanish" -} -] -}, -"renameOutput": true -}, -{ -"outputKey": "english", -"conditions": { -"options": { -"version": 2, -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "bedb302f-646c-4dcd-8246-1fcfecfe3f2e", -"operator": { -"name": "filter.operator.equals", -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.body.type }}", -"rightValue": "english" -} -] -}, -"renameOutput": true -}, -{ -"outputKey": "grammar", -"conditions": { -"options": { -"version": 2, -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "94e6cf7d-576d-4ad9-85b0-c6b945eb41b7", -"operator": { -"name": "filter.operator.equals", -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.body.type }}", -"rightValue": "grammar" -} -] -}, -"renameOutput": true -}, -{ -"outputKey": "shorter", -"conditions": { -"options": { -"version": 2, -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "1ed0d1e1-2df0-4f8d-b102-4004a25919ed", -"operator": { -"name": "filter.operator.equals", -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.body.type }}", -"rightValue": "shorter" -} -] -}, -"renameOutput": true -}, -{ -"outputKey": "longer", -"conditions": { -"options": { -"version": 2, -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "4756df03-7e7c-4e28-9b37-14684326b083", -"operator": { -"name": "filter.operator.equals", -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.body.type }}", -"rightValue": "longer" -} -] -}, -"renameOutput": true -} -] -}, -"options": {} -}, -"typeVersion": 3.2 -}, -{ -"id": "48e0e58e-6293-4e11-a488-ca9943b53484", -"name": "Respond to Shortcut", -"type": "n8n-nodes-base.respondToWebhook", -"position": [ -1840, -400 -], -"parameters": { -"options": {}, -"respondWith": "text", -"responseBody": "={{ $json.message.content.output.replaceAll('\\n', '
') }}" -}, -"typeVersion": 1.1 -}, -{ -"id": "2655b782-9538-416c-ae65-35f8c77889c7", -"name": "Webhook from Shortcut", -"type": "n8n-nodes-base.webhook", -"position": [ -840, -400 -], -"webhookId": "e4ddadd2-a127-4690-98ca-e9ee75c1bdd6", -"parameters": { -"path": "shortcut-global-as", -"options": {}, -"httpMethod": "POST", -"responseMode": "responseNode" -}, -"typeVersion": 2 -}, -{ -"id": "880ed4a2-0756-4943-a51f-368678e22273", -"name": "OpenAI - Make Shorter", -"type": "@n8n/n8n-nodes-langchain.openAi", -"position": [ -1300, -540 -], -"parameters": { -"modelId": { -"__rl": true, -"mode": "list", -"value": "gpt-4o-mini", -"cachedResultName": "GPT-4O-MINI" -}, -"options": {}, -"messages": { -"values": [ -{ -"role": "system", -"content": "Summarize this content a little bit (5% shorter)\nOutput a JSON with a single field: output" -}, -{ -"content": "={{ $json.body.content }}" -} -] -}, -"jsonOutput": true -}, -"credentials": { -"openAiApi": { -"id": "WqzqjezKh8VtxdqA", -"name": "OpenAi account - Baptiste" -} -}, -"typeVersion": 1.4 -}, -{ -"id": "c6c6d988-7aab-4677-af1f-880d05691ec3", -"name": "OpenAI - Make Longer", -"type": "@n8n/n8n-nodes-langchain.openAi", -"position": [ -1300, -680 -], -"parameters": { -"modelId": { -"__rl": true, -"mode": "list", -"value": "gpt-4o-mini", -"cachedResultName": "GPT-4O-MINI" -}, -"options": {}, -"messages": { -"values": [ -{ -"role": "system", -"content": "Make this content a little longer (5% longer)\nOutput a JSON with a single field: output" -}, -{ -"content": "={{ $json.body.content }}" -} -] -}, -"jsonOutput": true -}, -"credentials": { -"openAiApi": { -"id": "WqzqjezKh8VtxdqA", -"name": "OpenAi account - Baptiste" -} -}, -"typeVersion": 1.4 -}, -{ -"id": "8e6de4b7-22c3-45c9-a8d7-d498cf829b6f", -"name": "OpenAI - Correct Grammar", -"type": "@n8n/n8n-nodes-langchain.openAi", -"position": [ -1300, -400 -], -"parameters": { -"modelId": { -"__rl": true, -"mode": "list", -"value": "gpt-4o-mini", -"cachedResultName": "GPT-4O-MINI" -}, -"options": {}, -"messages": { -"values": [ -{ -"role": "system", -"content": "Correct grammar only, don't change the actual contents.\nOutput a JSON with a single field: output" -}, -{ -"content": "={{ $json.body.content }}" -} -] -}, -"jsonOutput": true -}, -"credentials": { -"openAiApi": { -"id": "WqzqjezKh8VtxdqA", -"name": "OpenAi account - Baptiste" -} -}, -"typeVersion": 1.4 -}, -{ -"id": "bc006b36-5a96-4c3a-9a28-2778a6c49f10", -"name": "OpenAI - To Spanish", -"type": "@n8n/n8n-nodes-langchain.openAi", -"position": [ -1300, -120 -], -"parameters": { -"modelId": { -"__rl": true, -"mode": "list", -"value": "gpt-4o-mini", -"cachedResultName": "GPT-4O-MINI" -}, -"options": {}, -"messages": { -"values": [ -{ -"role": "system", -"content": "Translate this message to Spanish.\nOutput a JSON with a single field: output" -}, -{ -"content": "={{ $json.body.content }}" -} -] -}, -"jsonOutput": true -}, -"credentials": { -"openAiApi": { -"id": "WqzqjezKh8VtxdqA", -"name": "OpenAi account - Baptiste" -} -}, -"typeVersion": 1.4 -}, -{ -"id": "330d2e40-1e52-4517-94e0-ce96226697fa", -"name": "OpenAI - To English", -"type": "@n8n/n8n-nodes-langchain.openAi", -"position": [ -1300, -260 -], -"parameters": { -"modelId": { -"__rl": true, -"mode": "list", -"value": "gpt-4o-mini", -"cachedResultName": "GPT-4O-MINI" -}, -"options": {}, -"messages": { -"values": [ -{ -"role": "system", -"content": "Translate this message to English.\nOutput a JSON with a single field: output" -}, -{ -"content": "={{ $json.body.content }}" -} -] -}, -"jsonOutput": true -}, -"credentials": { -"openAiApi": { -"id": "WqzqjezKh8VtxdqA", -"name": "OpenAi account - Baptiste" -} -}, -"typeVersion": 1.4 -}, -{ -"id": "925e4b55-ac26-4c16-941f-66d17b6794ab", -"name": "Sticky Note", -"type": "n8n-nodes-base.stickyNote", -"position": [ -80, -900 -], -"parameters": { -"color": 7, -"width": 469.15174499329123, -"height": 341.88919758842485, -"content": "### Check these explanations [< 3 min]\n\n[![Check the explanations](https://cdn.loom.com/sessions/thumbnails/c5b657568af64bb1b50fa8e8a91c45d1-1db3990a618986c9-full-play.gif)](https://www.loom.com/share/c5b657568af64bb1b50fa8e8a91c45d1?sid=a406be73-55eb-4754-9f51-9ddf49b22d69)" -}, -"typeVersion": 1 -} -], -"pinData": {}, -"connections": { -"Switch": { -"main": [ -[ -{ -"node": "OpenAI - To Spanish", -"type": "main", -"index": 0 -} -], -[ -{ -"node": "OpenAI - To English", -"type": "main", -"index": 0 -} -], -[ -{ -"node": "OpenAI - Correct Grammar", -"type": "main", -"index": 0 -} -], -[ -{ -"node": "OpenAI - Make Shorter", -"type": "main", -"index": 0 -} -], -[ -{ -"node": "OpenAI - Make Longer", -"type": "main", -"index": 0 -} -] -] -}, -"OpenAI - To English": { -"main": [ -[ -{ -"node": "Respond to Shortcut", -"type": "main", -"index": 0 -} -] -] -}, -"OpenAI - To Spanish": { -"main": [ -[ -{ -"node": "Respond to Shortcut", -"type": "main", -"index": 0 -} -] -] -}, -"OpenAI - Make Longer": { -"main": [ -[ -{ -"node": "Respond to Shortcut", -"type": "main", -"index": 0 -} -] -] -}, -"OpenAI - Make Shorter": { -"main": [ -[ -{ -"node": "Respond to Shortcut", -"type": "main", -"index": 0 -} -] -] -}, -"Webhook from Shortcut": { -"main": [ -[ -{ -"node": "Switch", -"type": "main", -"index": 0 -} -] -] -}, -"OpenAI - Correct Grammar": { -"main": [ -[ -{ -"node": "Respond to Shortcut", -"type": "main", -"index": 0 -} -] -] -} -} -} \ No newline at end of file diff --git a/Other_Integrations_and_Use_Cases/UTM Link Creator & QR Code Generator with Scheduled Google Analytics Reports.txt b/Other_Integrations_and_Use_Cases/UTM Link Creator & QR Code Generator with Scheduled Google Analytics Reports.json similarity index 100% rename from Other_Integrations_and_Use_Cases/UTM Link Creator & QR Code Generator with Scheduled Google Analytics Reports.txt rename to Other_Integrations_and_Use_Cases/UTM Link Creator & QR Code Generator with Scheduled Google Analytics Reports.json diff --git a/Other_Integrations_and_Use_Cases/Use AI to organize your Todoist Inbox.txt b/Other_Integrations_and_Use_Cases/Use AI to organize your Todoist Inbox.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Use AI to organize your Todoist Inbox.txt rename to Other_Integrations_and_Use_Cases/Use AI to organize your Todoist Inbox.json diff --git a/Other_Integrations_and_Use_Cases/Using External Workflows as Tools in n8n.txt b/Other_Integrations_and_Use_Cases/Using External Workflows as Tools in n8n.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Using External Workflows as Tools in n8n.txt rename to Other_Integrations_and_Use_Cases/Using External Workflows as Tools in n8n.json diff --git a/Other_Integrations_and_Use_Cases/Visualize your SQL Agent queries with OpenAI and Quickchart.io.txt b/Other_Integrations_and_Use_Cases/Visualize your SQL Agent queries with OpenAI and Quickchart.io.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Visualize your SQL Agent queries with OpenAI and Quickchart.io.txt rename to Other_Integrations_and_Use_Cases/Visualize your SQL Agent queries with OpenAI and Quickchart.io.json diff --git a/Other_Integrations_and_Use_Cases/Zoom AI Meeting Assistant creates mail summary, ClickUp tasks and follow-up call.txt b/Other_Integrations_and_Use_Cases/Zoom AI Meeting Assistant creates mail summary, ClickUp tasks and follow-up call.json similarity index 100% rename from Other_Integrations_and_Use_Cases/Zoom AI Meeting Assistant creates mail summary, ClickUp tasks and follow-up call.txt rename to Other_Integrations_and_Use_Cases/Zoom AI Meeting Assistant creates mail summary, ClickUp tasks and follow-up call.json diff --git a/PDF_and_Document_Processing/Ask questions about a PDF using AI.txt b/PDF_and_Document_Processing/Ask questions about a PDF using AI.json similarity index 100% rename from PDF_and_Document_Processing/Ask questions about a PDF using AI.txt rename to PDF_and_Document_Processing/Ask questions about a PDF using AI.json diff --git a/PDF_and_Document_Processing/Breakdown Documents into Study Notes using Templating MistralAI and Qdrant.txt b/PDF_and_Document_Processing/Breakdown Documents into Study Notes using Templating MistralAI and Qdrant.json similarity index 100% rename from PDF_and_Document_Processing/Breakdown Documents into Study Notes using Templating MistralAI and Qdrant.txt rename to PDF_and_Document_Processing/Breakdown Documents into Study Notes using Templating MistralAI and Qdrant.json diff --git a/PDF_and_Document_Processing/CV Resume PDF Parsing with Multimodal Vision AI.txt b/PDF_and_Document_Processing/CV Resume PDF Parsing with Multimodal Vision AI.json similarity index 100% rename from PDF_and_Document_Processing/CV Resume PDF Parsing with Multimodal Vision AI.txt rename to PDF_and_Document_Processing/CV Resume PDF Parsing with Multimodal Vision AI.json diff --git a/PDF_and_Document_Processing/Chat with PDF docs using AI (quoting sources).txt b/PDF_and_Document_Processing/Chat with PDF docs using AI (quoting sources).json similarity index 100% rename from PDF_and_Document_Processing/Chat with PDF docs using AI (quoting sources).txt rename to PDF_and_Document_Processing/Chat with PDF docs using AI (quoting sources).json diff --git a/PDF_and_Document_Processing/Convert URL HTML to Markdown Format and Get Page Links.txt b/PDF_and_Document_Processing/Convert URL HTML to Markdown Format and Get Page Links.json similarity index 100% rename from PDF_and_Document_Processing/Convert URL HTML to Markdown Format and Get Page Links.txt rename to PDF_and_Document_Processing/Convert URL HTML to Markdown Format and Get Page Links.json diff --git a/PDF_and_Document_Processing/ETL pipeline for text processing.txt b/PDF_and_Document_Processing/ETL pipeline for text processing.json similarity index 100% rename from PDF_and_Document_Processing/ETL pipeline for text processing.txt rename to PDF_and_Document_Processing/ETL pipeline for text processing.json diff --git a/PDF_and_Document_Processing/Extract and process information directly from PDF using Claude and Gemini.txt b/PDF_and_Document_Processing/Extract and process information directly from PDF using Claude and Gemini.json similarity index 100% rename from PDF_and_Document_Processing/Extract and process information directly from PDF using Claude and Gemini.txt rename to PDF_and_Document_Processing/Extract and process information directly from PDF using Claude and Gemini.json diff --git a/PDF_and_Document_Processing/Extract data from resume and create PDF with Gotenberg.txt b/PDF_and_Document_Processing/Extract data from resume and create PDF with Gotenberg.json similarity index 100% rename from PDF_and_Document_Processing/Extract data from resume and create PDF with Gotenberg.txt rename to PDF_and_Document_Processing/Extract data from resume and create PDF with Gotenberg.json diff --git a/PDF_and_Document_Processing/Extract license plate number from image uploaded via an n8n form.txt b/PDF_and_Document_Processing/Extract license plate number from image uploaded via an n8n form.json similarity index 100% rename from PDF_and_Document_Processing/Extract license plate number from image uploaded via an n8n form.txt rename to PDF_and_Document_Processing/Extract license plate number from image uploaded via an n8n form.json diff --git a/PDF_and_Document_Processing/Extract text from PDF and image using Vertex AI (Gemini) into CSV.txt b/PDF_and_Document_Processing/Extract text from PDF and image using Vertex AI (Gemini) into CSV.json similarity index 100% rename from PDF_and_Document_Processing/Extract text from PDF and image using Vertex AI (Gemini) into CSV.txt rename to PDF_and_Document_Processing/Extract text from PDF and image using Vertex AI (Gemini) into CSV.json diff --git a/PDF_and_Document_Processing/Invoice data extraction with LlamaParse and OpenAI (1).txt b/PDF_and_Document_Processing/Invoice data extraction with LlamaParse and OpenAI.json similarity index 100% rename from PDF_and_Document_Processing/Invoice data extraction with LlamaParse and OpenAI (1).txt rename to PDF_and_Document_Processing/Invoice data extraction with LlamaParse and OpenAI.json diff --git a/PDF_and_Document_Processing/Invoice data extraction with LlamaParse and OpenAI.txt b/PDF_and_Document_Processing/Invoice data extraction with LlamaParse and OpenAI.txt deleted file mode 100644 index 8566ba6..0000000 --- a/PDF_and_Document_Processing/Invoice data extraction with LlamaParse and OpenAI.txt +++ /dev/null @@ -1,991 +0,0 @@ -{ -"meta": { -"instanceId": "26ba763460b97c249b82942b23b6384876dfeb9327513332e743c5f6219c2b8e" -}, -"nodes": [ -{ -"id": "7076854e-c7e8-45b5-9e5e-16678bffa254", -"name": "OpenAI Model", -"type": "@n8n/n8n-nodes-langchain.lmOpenAi", -"position": [ -2420, -480 -], -"parameters": { -"model": { -"__rl": true, -"mode": "list", -"value": "gpt-3.5-turbo-1106", -"cachedResultName": "gpt-3.5-turbo-1106" -}, -"options": { -"temperature": 0 -} -}, -"credentials": { -"openAiApi": { -"id": "8gccIjcuf3gvaoEr", -"name": "OpenAi account" -} -}, -"typeVersion": 1 -}, -{ -"id": "00819f1c-2c60-4b7c-b395-445ec05fd898", -"name": "Structured Output Parser", -"type": "@n8n/n8n-nodes-langchain.outputParserStructured", -"position": [ -2600, -480 -], -"parameters": { -"jsonSchema": "{\n \"Invoice date\": { \"type\": \"date\" },\n \"invoice number\": { \"type\": \"string\" },\n \"Purchase order number\": { \"type\": \"string\" },\n \"Supplier name\": { \"type\": \"string\" },\n \"Supplier address\": {\n \"type\": \"object\",\n \"properties\": {\n \"address 1\": { \"type\": \"string\" },\n \"address 2\": { \"type\": \"string\" },\n \"city\": { \"type\": \"string\" },\n \"postcode\": { \"type\": \"string\" }\n }\n },\n \"Supplier VAT identification number\": { \"type\": \"string\" },\n \"Customer name\": { \"type\": \"string\" },\n \"Customer address\": {\n \"type\": \"object\",\n \"properties\": {\n \"address 1\": { \"type\": \"string\" },\n \"address 2\": { \"type\": \"string\" },\n \"city\": { \"type\": \"string\" },\n \"postcode\": { \"type\": \"string\" }\n }\n },\n \"Customer VAT identification number\": { \"type\": \"string\" }, \n \"Shipping addresses\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"address 1\": { \"type\": \"string\" },\n \"address 2\": { \"type\": \"string\" },\n \"city\": { \"type\": \"string\" },\n \"postcode\": { \"type\": \"string\" }\n }\n }\n },\n \"Line items\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"string\",\n \"description\": \"string\",\n \"price\": \"number\",\n \"discount\": \"number\"\n }\n },\n \"Subtotal without VAT\": { \"type\": \"number\" },\n \"Subtotal with VAT\": { \"type\": \"number\" },\n \"Total price\": { \"type\": \"number\" }\n}" -}, -"typeVersion": 1.1 -}, -{ -"id": "3b40d506-aabc-4105-853a-a318375cea73", -"name": "Upload to LlamaParse", -"type": "n8n-nodes-base.httpRequest", -"position": [ -1620, -420 -], -"parameters": { -"url": "https://api.cloud.llamaindex.ai/api/parsing/upload", -"method": "POST", -"options": {}, -"sendBody": true, -"contentType": "multipart-form-data", -"sendHeaders": true, -"authentication": "genericCredentialType", -"bodyParameters": { -"parameters": [ -{ -"name": "file", -"parameterType": "formBinaryData", -"inputDataFieldName": "=attachment_0" -} -] -}, -"genericAuthType": "httpHeaderAuth", -"headerParameters": { -"parameters": [ -{ -"name": "accept", -"value": "application/json" -} -] -} -}, -"credentials": { -"httpHeaderAuth": { -"id": "pZ4YmwFIkyGnbUC7", -"name": "LlamaIndex API" -} -}, -"typeVersion": 4.2 -}, -{ -"id": "57a5d331-8838-4d44-8fac-a44dba35fcc4", -"name": "Sticky Note", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1540, -140 -], -"parameters": { -"color": 7, -"width": 785.9525375246163, -"height": 623.4951418211454, -"content": "## 2. Advanced PDF Processing with LlamaParse\n[Read more about using HTTP Requests](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/)\n\nLlamaIndex's LlamaCloud is a cloud-based service that allows you to upload,\nparse, and index document. LlamaParse is a tool offered by LlamaCloud\nto parse for complex PDFs with embedded objects ie PDF Tables and figures.\n\nAt time of writing, you can parse 1000 pdfs/day with LlamaCloud's free plan\nby signing up at [https://cloud.llamaindex.ai/](https://cloud.llamaindex.ai/?ref=n8n.io)." -}, -"typeVersion": 1 -}, -{ -"id": "a4504d83-da3b-41bc-891f-f8f9314a6af5", -"name": "Receiving Invoices", -"type": "n8n-nodes-base.gmailTrigger", -"position": [ -780, -400 -], -"parameters": { -"simple": false, -"filters": { -"q": "has:attachment", -"sender": "invoices@paypal.com" -}, -"options": { -"downloadAttachments": true -}, -"pollTimes": { -"item": [ -{ -"mode": "everyMinute" -} -] -} -}, -"credentials": { -"gmailOAuth2": { -"id": "Sf5Gfl9NiFTNXFWb", -"name": "Gmail account" -} -}, -"typeVersion": 1 -}, -{ -"id": "02bd4636-f35b-4a3a-8a5f-9ae7aeed2bf4", -"name": "Append to Reconciliation Sheet", -"type": "n8n-nodes-base.googleSheets", -"position": [ -2960, -320 -], -"parameters": { -"columns": { -"value": {}, -"schema": [ -{ -"id": "Invoice date", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Invoice date", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "invoice number", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "invoice number", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Purchase order number", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Purchase order number", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Supplier name", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Supplier name", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Supplier address", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Supplier address", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Supplier VAT identification number", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Supplier VAT identification number", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Customer name", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Customer name", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Customer address", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Customer address", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Customer VAT identification number", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Customer VAT identification number", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Shipping addresses", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Shipping addresses", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Line items", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Line items", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Subtotal without VAT", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Subtotal without VAT", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Subtotal with VAT", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Subtotal with VAT", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Total price", -"type": "string", -"display": true, -"removed": false, -"required": false, -"displayName": "Total price", -"defaultMatch": false, -"canBeUsedToMatch": true -} -], -"mappingMode": "autoMapInputData", -"matchingColumns": [ -"output" -] -}, -"options": {}, -"operation": "append", -"sheetName": { -"__rl": true, -"mode": "id", -"value": "gid=0" -}, -"documentId": { -"__rl": true, -"mode": "list", -"value": "1omHDl1jpjHyrtga2ZHBddUkbkdatEr1ga9vHc4fQ1pI", -"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1omHDl1jpjHyrtga2ZHBddUkbkdatEr1ga9vHc4fQ1pI/edit?usp=drivesdk", -"cachedResultName": "Invoice Reconciliation" -} -}, -"credentials": { -"googleSheetsOAuth2Api": { -"id": "XHvC7jIRR8A2TlUl", -"name": "Google Sheets account" -} -}, -"typeVersion": 4.3 -}, -{ -"id": "cdb0a7ee-068d-465a-b4ae-d5221d5e7400", -"name": "Get Processing Status", -"type": "n8n-nodes-base.httpRequest", -"position": [ -1800, -420 -], -"parameters": { -"url": "=https://api.cloud.llamaindex.ai/api/parsing/job/{{ $json.id }}", -"options": {}, -"sendHeaders": true, -"authentication": "genericCredentialType", -"genericAuthType": "httpHeaderAuth", -"headerParameters": { -"parameters": [ -{ -"name": "accept", -"value": "application/json" -} -] -} -}, -"credentials": { -"httpHeaderAuth": { -"id": "pZ4YmwFIkyGnbUC7", -"name": "LlamaIndex API" -} -}, -"typeVersion": 4.2 -}, -{ -"id": "b68a01ab-d8e6-42f4-ab1d-81e746695eef", -"name": "Wait to stay within service limits", -"type": "n8n-nodes-base.wait", -"position": [ -2120, -560 -], -"webhookId": "17a96ed6-b5ff-47bb-a8a2-39c1eb40185a", -"parameters": { -"amount": 1 -}, -"typeVersion": 1.1 -}, -{ -"id": "41bd28d2-665a-4f71-a456-98eeb26b6655", -"name": "Is Job Ready?", -"type": "n8n-nodes-base.switch", -"position": [ -1960, -420 -], -"parameters": { -"rules": { -"values": [ -{ -"outputKey": "SUCCESS", -"conditions": { -"options": { -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "300fce8c-b19a-4d0c-86e8-f62853c70ce2", -"operator": { -"name": "filter.operator.equals", -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.status }}", -"rightValue": "SUCCESS" -} -] -}, -"renameOutput": true -}, -{ -"outputKey": "ERROR", -"conditions": { -"options": { -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "e6058aa0-a3e2-4ce3-9bed-6ff41a5be052", -"operator": { -"name": "filter.operator.equals", -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.status }}", -"rightValue": "ERROR" -} -] -}, -"renameOutput": true -}, -{ -"outputKey": "CANCELED", -"conditions": { -"options": { -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "ceb6338f-4261-40ac-be11-91f61c7302ba", -"operator": { -"name": "filter.operator.equals", -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.status }}", -"rightValue": "CANCELED" -} -] -}, -"renameOutput": true -}, -{ -"outputKey": "PENDING", -"conditions": { -"options": { -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "0fa97d86-432a-409a-917e-5f1a002b1ab9", -"operator": { -"name": "filter.operator.equals", -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.status }}", -"rightValue": "PENDING" -} -] -}, -"renameOutput": true -} -] -}, -"options": { -"allMatchingOutputs": true -} -}, -"typeVersion": 3 -}, -{ -"id": "f7157abe-b1ee-46b3-adb2-1be056d9d75d", -"name": "Sticky Note1", -"type": "n8n-nodes-base.stickyNote", -"position": [ -694.0259411218055, -139.97202236910687 -], -"parameters": { -"color": 7, -"width": 808.8727491350096, -"height": 709.5781339256318, -"content": "## 1. Watch for Invoice Emails\n[Read more about Gmail Triggers](https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.gmailtrigger)\n\nThe Gmail node can watch for all incoming messages and filter based on a condition. We'll set our Gmail node to wait for:\n* a message from particular email address.\n* having an attachment which should be the invoice PDF\n* not having a label \"invoice synced\", which is what we use to avoid duplicate processing." -}, -"typeVersion": 1 -}, -{ -"id": "ff7cb6e4-5a60-4f12-b15e-74e7a4a302ce", -"name": "Sticky Note2", -"type": "n8n-nodes-base.stickyNote", -"position": [ -2360, -70.48792658995046 -], -"parameters": { -"color": 7, -"width": 805.0578351924228, -"height": 656.5014186128178, -"content": "## 3. Use LLMs to Extract Values from Data\n[Read more about Basic LLM Chain](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/)\n\nLarge language models are perfect for data extraction tasks as they can work across a range of document layouts without human intervention. The extracted data can then be sent to a variety of datastores such as spreadsheets, accounting systems and/or CRMs.\n\n**Tip:** The \"Structured Output Parser\" ensures the AI output can be\ninserted to our spreadsheet without additional clean up and/or formatting. " -}, -"typeVersion": 1 -}, -{ -"id": "0d510631-440b-41f5-b1aa-9b7279e9c8e3", -"name": "Sticky Note3", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1934, -774 -], -"parameters": { -"color": 5, -"width": 394.15089838126653, -"height": 154.49585536070904, -"content": "### ๐Ÿ™‹โ€โ™‚๏ธ Why not just use the built-in PDF convertor?\nA common issue with PDF-to-text convertors are that they ignore important data structures like tables. These structures can be important for data extraction. For example, being able to distinguish between seperate line items in an invoice." -}, -"typeVersion": 1 -}, -{ -"id": "fe7fdb90-3c85-4f29-a7d3-16f927f48682", -"name": "Sticky Note4", -"type": "n8n-nodes-base.stickyNote", -"position": [ -3200, -157.65172434465347 -], -"parameters": { -"color": 7, -"width": 362.3535748101346, -"height": 440.3435768155051, -"content": "## 4. Add Label to Avoid Duplication\n[Read more about working with Gmail](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/)\n\nTo finish off the workflow, we'll add the \"invoice synced\" label to the original invoice email to flag that the extraction was successful. This can be useful if working with a shared inbox and for quality control purposes later." -}, -"typeVersion": 1 -}, -{ -"id": "1acf2c60-c2b9-4f78-94a4-0711c8bd71ab", -"name": "Sticky Note5", -"type": "n8n-nodes-base.stickyNote", -"position": [ -300, -140 -], -"parameters": { -"width": 360.0244620907562, -"height": 573.2443601155958, -"content": "## Try Me Out!\n\n**This workflow does the following:**\n* Waits for email invoices with PDF attachments.\n* Uses the LlamaParse service to convert the invoice PDF into a markdown file.\n* Uses a LLM to extract invoice data from the Markdown file.\n* Exports the extracted data to a Google Sheet.\n\n### Follow along with the blog here\nhttps://blog.n8n.io/how-to-extract-data-from-pdf-to-excel-spreadsheet-advance-parsing-with-n8n-io-and-llamaparse/\n\n### Good to know\n* You'll need to create the label \"invoice synced\" in gmail before using this workflow.\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!" -}, -"typeVersion": 1 -}, -{ -"id": "3802c538-acf9-48d8-b011-bfe2fb817350", -"name": "Add \"invoice synced\" Label", -"type": "n8n-nodes-base.gmail", -"position": [ -3320, -400 -], -"parameters": { -"labelIds": [ -"Label_5511644430826409825" -], -"messageId": "={{ $('Receiving Invoices').item.json.id }}", -"operation": "addLabels" -}, -"credentials": { -"gmailOAuth2": { -"id": "Sf5Gfl9NiFTNXFWb", -"name": "Gmail account" -} -}, -"typeVersion": 2.1 -}, -{ -"id": "ffabd8c5-c440-4473-8e44-b849426c70cf", -"name": "Get Parsed Invoice Data", -"type": "n8n-nodes-base.httpRequest", -"position": [ -2160, -280 -], -"parameters": { -"url": "=https://api.cloud.llamaindex.ai/api/parsing/job/{{ $json.id }}/result/markdown", -"options": { -"redirect": { -"redirect": {} -} -}, -"authentication": "genericCredentialType", -"genericAuthType": "httpHeaderAuth" -}, -"credentials": { -"httpHeaderAuth": { -"id": "pZ4YmwFIkyGnbUC7", -"name": "LlamaIndex API" -} -}, -"typeVersion": 4.2 -}, -{ -"id": "5f9b507f-4dc1-4853-bf71-a64f2f4b55c1", -"name": "Map Output", -"type": "n8n-nodes-base.set", -"position": [ -2760, -320 -], -"parameters": { -"mode": "raw", -"options": {}, -"jsonOutput": "={{ $json.output }}" -}, -"typeVersion": 3.3 -}, -{ -"id": "d22744cd-151d-4b92-b4f2-4a5b9ceb4ee7", -"name": "Apply Data Extraction Rules", -"type": "@n8n/n8n-nodes-langchain.chainLlm", -"position": [ -2420, -320 -], -"parameters": { -"text": "=Given the following invoice in the xml tags, extract the following information as listed below.\nIf you cannot the information for a specific item, then leave blank and skip to the next. \n\n* Invoice date\n* invoice number\n* Purchase order number\n* Supplier name\n* Supplier address\n* Supplier VAT identification number\n* Customer name\n* Customer address\n* Customer VAT identification number\n* Shipping addresses\n* Line items, including a description of the goods or services rendered\n* Price with and without VAT\n* Total price\n\n{{ $json.markdown }}", -"promptType": "define", -"hasOutputParser": true -}, -"typeVersion": 1.4 -}, -{ -"id": "3735a124-9fab-4400-8b94-8b5aa9f951fe", -"name": "Should Process Email?", -"type": "n8n-nodes-base.if", -"position": [ -1340, -400 -], -"parameters": { -"options": {}, -"conditions": { -"options": { -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "e5649a2b-6e12-4cc4-8001-4639cc9cc2c2", -"operator": { -"name": "filter.operator.equals", -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $input.item.binary.attachment_0.mimeType }}", -"rightValue": "application/pdf" -}, -{ -"id": "4c57ab9b-b11c-455a-a63d-daf48418b06e", -"operator": { -"type": "array", -"operation": "notContains", -"rightType": "any" -}, -"leftValue": "={{ $json.labels }}", -"rightValue": "invoice synced" -} -] -} -}, -"typeVersion": 2 -}, -{ -"id": "12a23527-39f3-4f72-8691-3d5cf59f9909", -"name": "Split Out Labels", -"type": "n8n-nodes-base.splitOut", -"position": [ -980, -400 -], -"parameters": { -"options": {}, -"fieldToSplitOut": "labelIds" -}, -"typeVersion": 1 -}, -{ -"id": "88ff6e22-d3d3-403d-b0b2-2674487140a7", -"name": "Get Labels Names", -"type": "n8n-nodes-base.gmail", -"position": [ -980, -540 -], -"parameters": { -"labelId": "={{ $json.labelIds }}", -"resource": "label", -"operation": "get" -}, -"credentials": { -"gmailOAuth2": { -"id": "Sf5Gfl9NiFTNXFWb", -"name": "Gmail account" -} -}, -"typeVersion": 2.1 -}, -{ -"id": "88accb8e-6531-40be-8d35-1bba594149af", -"name": "Combine Label Names", -"type": "n8n-nodes-base.aggregate", -"position": [ -980, -680 -], -"parameters": { -"options": {}, -"fieldsToAggregate": { -"fieldToAggregate": [ -{ -"renameField": true, -"outputFieldName": "labels", -"fieldToAggregate": "name" -} -] -} -}, -"typeVersion": 1 -}, -{ -"id": "d233ff33-cabf-434e-876d-879693ecaf58", -"name": "Email with Label Names", -"type": "n8n-nodes-base.merge", -"position": [ -1160, -400 -], -"parameters": { -"mode": "combine", -"options": {}, -"combinationMode": "multiplex" -}, -"typeVersion": 2.1 -}, -{ -"id": "733fc285-e069-4e4e-b13e-dfc1c259ac12", -"name": "Sticky Note6", -"type": "n8n-nodes-base.stickyNote", -"position": [ -2540, -460 -], -"parameters": { -"width": 192.26896179623753, -"height": 213.73043662572252, -"content": "\n\n\n\n\n\n\n\n\n\n\n\n**Need more attributes?**\nChange it here!" -}, -"typeVersion": 1 -}, -{ -"id": "83aa6ed0-ce3b-48d7-aded-475c337ae86e", -"name": "Sticky Note7", -"type": "n8n-nodes-base.stickyNote", -"position": [ -2880, -300 -], -"parameters": { -"width": 258.29345180972877, -"height": 397.0641952938746, -"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n๐Ÿšจ**Required**\n* Set Your Google Sheet URL here\n* Set the Name of your Sheet\n\n\n**Don't use GSheets?**\nSwap this for Excel, Airtable or a Database!" -}, -"typeVersion": 1 -}, -{ -"id": "720070f6-2d6c-45ef-80c2-e950862a002b", -"name": "Sticky Note8", -"type": "n8n-nodes-base.stickyNote", -"position": [ -740, -380 -], -"parameters": { -"width": 174.50671517518518, -"height": 274.6295678979021, -"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n๐Ÿšจ**Required**\n* Change the email filters here!" -}, -"typeVersion": 1 -} -], -"pinData": {}, -"connections": { -"Map Output": { -"main": [ -[ -{ -"node": "Append to Reconciliation Sheet", -"type": "main", -"index": 0 -} -] -] -}, -"OpenAI Model": { -"ai_languageModel": [ -[ -{ -"node": "Apply Data Extraction Rules", -"type": "ai_languageModel", -"index": 0 -} -] -] -}, -"Is Job Ready?": { -"main": [ -[ -{ -"node": "Get Parsed Invoice Data", -"type": "main", -"index": 0 -} -], -null, -null, -[ -{ -"node": "Wait to stay within service limits", -"type": "main", -"index": 0 -} -] -] -}, -"Get Labels Names": { -"main": [ -[ -{ -"node": "Combine Label Names", -"type": "main", -"index": 0 -} -] -] -}, -"Split Out Labels": { -"main": [ -[ -{ -"node": "Get Labels Names", -"type": "main", -"index": 0 -} -] -] -}, -"Receiving Invoices": { -"main": [ -[ -{ -"node": "Split Out Labels", -"type": "main", -"index": 0 -}, -{ -"node": "Email with Label Names", -"type": "main", -"index": 0 -} -] -] -}, -"Combine Label Names": { -"main": [ -[ -{ -"node": "Email with Label Names", -"type": "main", -"index": 1 -} -] -] -}, -"Upload to LlamaParse": { -"main": [ -[ -{ -"node": "Get Processing Status", -"type": "main", -"index": 0 -} -] -] -}, -"Get Processing Status": { -"main": [ -[ -{ -"node": "Is Job Ready?", -"type": "main", -"index": 0 -} -] -] -}, -"Should Process Email?": { -"main": [ -[ -{ -"node": "Upload to LlamaParse", -"type": "main", -"index": 0 -} -] -] -}, -"Email with Label Names": { -"main": [ -[ -{ -"node": "Should Process Email?", -"type": "main", -"index": 0 -} -] -] -}, -"Get Parsed Invoice Data": { -"main": [ -[ -{ -"node": "Apply Data Extraction Rules", -"type": "main", -"index": 0 -} -] -] -}, -"Structured Output Parser": { -"ai_outputParser": [ -[ -{ -"node": "Apply Data Extraction Rules", -"type": "ai_outputParser", -"index": 0 -} -] -] -}, -"Apply Data Extraction Rules": { -"main": [ -[ -{ -"node": "Map Output", -"type": "main", -"index": 0 -} -] -] -}, -"Append to Reconciliation Sheet": { -"main": [ -[ -{ -"node": "Add \"invoice synced\" Label", -"type": "main", -"index": 0 -} -] -] -}, -"Wait to stay within service limits": { -"main": [ -[ -{ -"node": "Get Processing Status", -"type": "main", -"index": 0 -} -] -] -} -} -} \ No newline at end of file diff --git a/PDF_and_Document_Processing/Manipulate PDF with Adobe developer API.txt b/PDF_and_Document_Processing/Manipulate PDF with Adobe developer API.json similarity index 100% rename from PDF_and_Document_Processing/Manipulate PDF with Adobe developer API.txt rename to PDF_and_Document_Processing/Manipulate PDF with Adobe developer API.json diff --git a/PDF_and_Document_Processing/Parse PDF with LlamaParse and save to Airtable.txt b/PDF_and_Document_Processing/Parse PDF with LlamaParse and save to Airtable.json similarity index 100% rename from PDF_and_Document_Processing/Parse PDF with LlamaParse and save to Airtable.txt rename to PDF_and_Document_Processing/Parse PDF with LlamaParse and save to Airtable.json diff --git a/PDF_and_Document_Processing/Prepare CSV files with GPT-4Prepare CSV files with GPT-4.txt b/PDF_and_Document_Processing/Prepare CSV files with GPT-4Prepare CSV files with GPT-4.json similarity index 100% rename from PDF_and_Document_Processing/Prepare CSV files with GPT-4Prepare CSV files with GPT-4.txt rename to PDF_and_Document_Processing/Prepare CSV files with GPT-4Prepare CSV files with GPT-4.json diff --git a/PDF_and_Document_Processing/Remove Personally Identifiable Information (PII) from CSV Files with OpenAI.txt b/PDF_and_Document_Processing/Remove Personally Identifiable Information (PII) from CSV Files with OpenAI.json similarity index 100% rename from PDF_and_Document_Processing/Remove Personally Identifiable Information (PII) from CSV Files with OpenAI.txt rename to PDF_and_Document_Processing/Remove Personally Identifiable Information (PII) from CSV Files with OpenAI.json diff --git a/PDF_and_Document_Processing/Transcribe Audio Files, Summarize with GPT-4, and Store in Notion.txt b/PDF_and_Document_Processing/Transcribe Audio Files, Summarize with GPT-4, and Store in Notion.json similarity index 100% rename from PDF_and_Document_Processing/Transcribe Audio Files, Summarize with GPT-4, and Store in Notion.txt rename to PDF_and_Document_Processing/Transcribe Audio Files, Summarize with GPT-4, and Store in Notion.json diff --git a/PDF_and_Document_Processing/Transcribing Bank Statements To Markdown Using Gemini Vision AI.txt b/PDF_and_Document_Processing/Transcribing Bank Statements To Markdown Using Gemini Vision AI.json similarity index 100% rename from PDF_and_Document_Processing/Transcribing Bank Statements To Markdown Using Gemini Vision AI.txt rename to PDF_and_Document_Processing/Transcribing Bank Statements To Markdown Using Gemini Vision AI.json diff --git a/Slack/AI-Powered Information Monitoring with OpenAI, Google Sheets, Jina AI and Slack.txt b/Slack/AI-Powered Information Monitoring with OpenAI, Google Sheets, Jina AI and Slack.json similarity index 100% rename from Slack/AI-Powered Information Monitoring with OpenAI, Google Sheets, Jina AI and Slack.txt rename to Slack/AI-Powered Information Monitoring with OpenAI, Google Sheets, Jina AI and Slack.json diff --git a/Slack/Creating a AI Slack Bot with Google Gemini.txt b/Slack/Creating a AI Slack Bot with Google Gemini.json similarity index 100% rename from Slack/Creating a AI Slack Bot with Google Gemini.txt rename to Slack/Creating a AI Slack Bot with Google Gemini.json diff --git a/Slack/Customer Support Channel and Ticketing System with Slack and Linear.txt b/Slack/Customer Support Channel and Ticketing System with Slack and Linear.json similarity index 100% rename from Slack/Customer Support Channel and Ticketing System with Slack and Linear.txt rename to Slack/Customer Support Channel and Ticketing System with Slack and Linear.json diff --git a/Slack/Enhance Security Operations with the Qualys Slack Shortcut Bot! (1).txt b/Slack/Enhance Security Operations with the Qualys Slack Shortcut Bot!.json similarity index 100% rename from Slack/Enhance Security Operations with the Qualys Slack Shortcut Bot! (1).txt rename to Slack/Enhance Security Operations with the Qualys Slack Shortcut Bot!.json diff --git a/Slack/Enhance Security Operations with the Qualys Slack Shortcut Bot!.txt b/Slack/Enhance Security Operations with the Qualys Slack Shortcut Bot!.txt deleted file mode 100644 index d8c2b86..0000000 --- a/Slack/Enhance Security Operations with the Qualys Slack Shortcut Bot!.txt +++ /dev/null @@ -1,697 +0,0 @@ -{ -"meta": { -"instanceId": "03e9d14e9196363fe7191ce21dc0bb17387a6e755dcc9acc4f5904752919dca8" -}, -"nodes": [ -{ -"id": "adfda9cb-1d77-4c54-b3ea-e7bf438a48af", -"name": "Parse Webhook", -"type": "n8n-nodes-base.set", -"position": [ -760, -640 -], -"parameters": { -"options": {}, -"assignments": { -"assignments": [ -{ -"id": "e63f9299-a19d-4ba1-93b0-59f458769fb2", -"name": "response", -"type": "object", -"value": "={{ $json.body.payload }}" -} -] -} -}, -"typeVersion": 3.3 -}, -{ -"id": "b3e0e490-18e0-44b5-a960-0fdbf8422515", -"name": "Qualys Create Report", -"type": "n8n-nodes-base.executeWorkflow", -"position": [ -1720, -1740 -], -"parameters": { -"options": {}, -"workflowId": "icSLX102kSS9zNdK" -}, -"typeVersion": 1 -}, -{ -"id": "80ae074b-bda5-4638-b46f-246a1b9530ae", -"name": "Required Report Variables", -"type": "n8n-nodes-base.set", -"position": [ -1520, -1740 -], -"parameters": { -"options": {}, -"assignments": { -"assignments": [ -{ -"id": "47cd1502-3039-4661-a6b1-e20a74056550", -"name": "report_title", -"type": "string", -"value": "={{ $json.response.view.state.values.report_title.report_title_input.value }}" -}, -{ -"id": "6a8a0cbf-bf3e-4702-956e-a35966d8b9c5", -"name": "base_url", -"type": "string", -"value": "https://qualysapi.qg3.apps.qualys.com" -}, -{ -"id": "9a15f4db-f006-4ad8-a2c0-4002dd3e2655", -"name": "output_format", -"type": "string", -"value": "={{ $json.response.view.state.values.output_format.output_format_select.selected_option.value }}" -}, -{ -"id": "13978e05-7e7f-42e9-8645-d28803db8cc9", -"name": "template_name", -"type": "string", -"value": "={{ $json.response.view.state.values.report_template.report_template_select.selected_option.text.text }}" -} -] -} -}, -"typeVersion": 3.3 -}, -{ -"id": "b596da86-02c7-4d8e-a267-88933f47ae0c", -"name": "Qualys Start Vulnerability Scan", -"type": "n8n-nodes-base.executeWorkflow", -"position": [ -1720, -1540 -], -"parameters": { -"options": {}, -"workflowId": "pYPh5FlGZgb36xZO" -}, -"typeVersion": 1 -}, -{ -"id": "61e39516-6558-46ce-a300-b4cbade7a6f6", -"name": "Scan Report Task Modal", -"type": "n8n-nodes-base.httpRequest", -"position": [ -1620, -720 -], -"parameters": { -"url": "https://slack.com/api/views.open", -"method": "POST", -"options": {}, -"jsonBody": "= {\n \"trigger_id\": \"{{ $('Parse Webhook').item.json['response']['trigger_id'] }}\",\n \"external_id\": \"Scan Report Generator\",\n \"view\": {\n\t\"title\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"Scan Report Generator\",\n\t\t\"emoji\": true\n\t},\n\t\"submit\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"Generate Report\",\n\t\t\"emoji\": true\n\t},\n\t\"type\": \"modal\",\n\t\"close\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"Cancel\",\n\t\t\"emoji\": true\n\t},\n\t\"blocks\": [\n\t\t{\n\t\t\t\"type\": \"image\",\n\t\t\t\"image_url\": \"https://upload.wikimedia.org/wikipedia/commons/thumb/2/26/Logo-Qualys.svg/300px-Logo-Qualys.svg.png\",\n\t\t\t\"alt_text\": \"Qualys Logo\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"Select a template and generate a detailed scan report based on the results of your previous scans.\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"input\",\n\t\t\t\"block_id\": \"report_template\",\n\t\t\t\"element\": {\n\t\t\t\t\"type\": \"external_select\",\n\t\t\t\t\"placeholder\": {\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"Select a report template\",\n\t\t\t\t\t\"emoji\": true\n\t\t\t\t},\n\t\t\t\t\"action_id\": \"report_template_select\"\n\t\t\t},\n\t\t\t\"label\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Report Template\",\n\t\t\t\t\"emoji\": true\n\t\t\t},\n\t\t\t\"hint\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Choose a report template from your Qualys account to structure the output.\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"input\",\n\t\t\t\"block_id\": \"report_title\",\n\t\t\t\"element\": {\n\t\t\t\t\"type\": \"plain_text_input\",\n\t\t\t\t\"action_id\": \"report_title_input\",\n\t\t\t\t\"placeholder\": {\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"Enter a custom title for the report\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"label\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Report Title\",\n\t\t\t\t\"emoji\": true\n\t\t\t},\n\t\t\t\"hint\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Provide a descriptive title for your report. This title will be used in the report header.\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"input\",\n\t\t\t\"block_id\": \"output_format\",\n\t\t\t\"element\": {\n\t\t\t\t\"type\": \"static_select\",\n\t\t\t\t\"placeholder\": {\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"Select output format\",\n\t\t\t\t\t\"emoji\": true\n\t\t\t\t},\n\t\t\t\t\"options\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"text\": {\n\t\t\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\t\t\"text\": \"PDF\",\n\t\t\t\t\t\t\t\"emoji\": true\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"value\": \"pdf\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"text\": {\n\t\t\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\t\t\"text\": \"HTML\",\n\t\t\t\t\t\t\t\"emoji\": true\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"value\": \"html\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"text\": {\n\t\t\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\t\t\"text\": \"CSV\",\n\t\t\t\t\t\t\t\"emoji\": true\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"value\": \"csv\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t\"action_id\": \"output_format_select\"\n\t\t\t},\n\t\t\t\"label\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Output Format\",\n\t\t\t\t\"emoji\": true\n\t\t\t},\n\t\t\t\"hint\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Choose the format in which you want the report to be generated.\"\n\t\t\t}\n\t\t}\n\t]\n}\n}", -"sendBody": true, -"jsonQuery": "{\n \"Content-type\": \"application/json\"\n}", -"sendQuery": true, -"specifyBody": "json", -"specifyQuery": "json", -"authentication": "predefinedCredentialType", -"nodeCredentialType": "slackApi" -}, -"credentials": { -"slackApi": { -"id": "DZJDes1ZtGpqClNk", -"name": "Qualys Slack App" -} -}, -"typeVersion": 4.2 -}, -{ -"id": "29cf716c-9cd6-4bd9-a0f9-c75baca86cc1", -"name": "Vuln Scan Modal", -"type": "n8n-nodes-base.httpRequest", -"position": [ -1620, -560 -], -"parameters": { -"url": "https://slack.com/api/views.open", -"method": "POST", -"options": {}, -"jsonBody": "= {\n \"trigger_id\": \"{{ $('Parse Webhook').item.json['response']['trigger_id'] }}\",\n \"external_id\": \"Scan Report Generator\",\n \"view\": {\n\t\"title\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"Vulnerability Scan\",\n\t\t\"emoji\": true\n\t},\n\t\"submit\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"Execute Scan\",\n\t\t\"emoji\": true\n\t},\n\t\"type\": \"modal\",\n\t\"close\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"Cancel\",\n\t\t\"emoji\": true\n\t},\n\t\"blocks\": [\n\t\t{\n\t\t\t\"type\": \"image\",\n\t\t\t\"image_url\": \"https://upload.wikimedia.org/wikipedia/commons/thumb/2/26/Logo-Qualys.svg/300px-Logo-Qualys.svg.png\",\n\t\t\t\"alt_text\": \"Qualys Logo\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Initiate a network-wide scan to detect and assess security vulnerabilities.\",\n\t\t\t\t\"emoji\": true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"input\",\n\t\t\t\"block_id\": \"option_title\",\n\t\t\t\"element\": {\n\t\t\t\t\"type\": \"plain_text_input\",\n\t\t\t\t\"action_id\": \"text_input-action\",\n\t\t\t\t\"initial_value\": \"Initial Options\"\n\t\t\t},\n\t\t\t\"label\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Option Title\",\n\t\t\t\t\"emoji\": true\n\t\t\t},\n\t\t\t\"hint\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Specify the title of the option profile to use for the scan.\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"input\",\n\t\t\t\"block_id\": \"scan_title\",\n\t\t\t\"element\": {\n\t\t\t\t\"type\": \"plain_text_input\",\n\t\t\t\t\"action_id\": \"text_input-action\",\n\t\t\t\t\"placeholder\": {\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"Enter your scan title\"\n\t\t\t\t},\n\t\t\t\t\"initial_value\": \"n8n Scan 1\"\n\t\t\t},\n\t\t\t\"label\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Scan Title\",\n\t\t\t\t\"emoji\": true\n\t\t\t},\n\t\t\t\"hint\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Provide a descriptive title for the scan. Up to 2000 characters.\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"input\",\n\t\t\t\"block_id\": \"asset_groups\",\n\t\t\t\"element\": {\n\t\t\t\t\"type\": \"plain_text_input\",\n\t\t\t\t\"action_id\": \"text_input-action\",\n\t\t\t\t\"placeholder\": {\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"Enter asset groups\"\n\t\t\t\t},\n\t\t\t\t\"initial_value\": \"Group1\"\n\t\t\t},\n\t\t\t\"label\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Asset Groups\",\n\t\t\t\t\"emoji\": true\n\t\t\t},\n\t\t\t\"hint\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Specify asset group titles for targeting. Multiple titles must be comma-separated.\"\n\t\t\t}\n\t\t}\n\t]\n}\n}", -"sendBody": true, -"jsonQuery": "{\n \"Content-type\": \"application/json\"\n}", -"sendQuery": true, -"specifyBody": "json", -"specifyQuery": "json", -"authentication": "predefinedCredentialType", -"nodeCredentialType": "slackApi" -}, -"credentials": { -"slackApi": { -"id": "DZJDes1ZtGpqClNk", -"name": "Qualys Slack App" -} -}, -"typeVersion": 4.2 -}, -{ -"id": "a771704d-4191-4e80-b62f-81b41b047a87", -"name": "Route Message", -"type": "n8n-nodes-base.switch", -"position": [ -940, -640 -], -"parameters": { -"rules": { -"values": [ -{ -"outputKey": "Vuln Scan Modal", -"conditions": { -"options": { -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"operator": { -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.response.callback_id }}", -"rightValue": "trigger-qualys-vmscan" -} -] -}, -"renameOutput": true -}, -{ -"outputKey": "Scan Report Modal", -"conditions": { -"options": { -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "02868fd8-2577-4c6d-af5e-a1963cb2f786", -"operator": { -"name": "filter.operator.equals", -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.response.callback_id }}", -"rightValue": "qualys-scan-report" -} -] -}, -"renameOutput": true -}, -{ -"outputKey": "Process Submission", -"conditions": { -"options": { -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "c320c8b8-947b-433a-be82-d2aa96594808", -"operator": { -"name": "filter.operator.equals", -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.response.type }}", -"rightValue": "view_submission" -} -] -}, -"renameOutput": true -} -] -}, -"options": { -"fallbackOutput": "none" -} -}, -"typeVersion": 3 -}, -{ -"id": "c8346d57-762a-4bbd-8d2b-f13097cb063d", -"name": "Required Scan Variables", -"type": "n8n-nodes-base.set", -"position": [ -1520, -1540 -], -"parameters": { -"options": {}, -"assignments": { -"assignments": [ -{ -"id": "096ff32e-356e-4a85-aad2-01001d69dd46", -"name": "platformurl", -"type": "string", -"value": "https://qualysapi.qg3.apps.qualys.com" -}, -{ -"id": "070178a6-73b0-458b-8657-20ab4ff0485c", -"name": "option_title", -"type": "string", -"value": "={{ $json.response.view.state.values.option_title['text_input-action'].value }}" -}, -{ -"id": "3605424b-5bfc-44f0-b6e4-e0d6b1130b8e", -"name": "scan_title", -"type": "string", -"value": "={{ $json.response.view.state.values.scan_title['text_input-action'].value }}" -}, -{ -"id": "2320d966-b834-46fb-b674-be97cc08682e", -"name": "asset_groups", -"type": "string", -"value": "={{ $json.response.view.state.values.asset_groups['text_input-action'].value }}" -} -] -} -}, -"typeVersion": 3.3 -}, -{ -"id": "55589da9-50ce-4d55-a5ff-d62abdf65fa4", -"name": "Route Submission", -"type": "n8n-nodes-base.switch", -"position": [ -1240, -1140 -], -"parameters": { -"rules": { -"values": [ -{ -"outputKey": "Vuln Scan", -"conditions": { -"options": { -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"operator": { -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.response.view.title.text }}", -"rightValue": "Vulnerability Scan" -} -] -}, -"renameOutput": true -}, -{ -"outputKey": "Scan Report", -"conditions": { -"options": { -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "02868fd8-2577-4c6d-af5e-a1963cb2f786", -"operator": { -"name": "filter.operator.equals", -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.response.view.title.text }}", -"rightValue": "Scan Report Generator" -} -] -}, -"renameOutput": true -} -] -}, -"options": { -"fallbackOutput": "none" -} -}, -"typeVersion": 3 -}, -{ -"id": "d0fc264d-0c48-4aa6-aeab-ed605d96f35a", -"name": "Sticky Note", -"type": "n8n-nodes-base.stickyNote", -"position": [ -428.3467548314237, -270.6382978723399 -], -"parameters": { -"color": 7, -"width": 466.8168310000617, -"height": 567.6433222116042, -"content": "![Imgur](https://uploads.n8n.io/templates/slack.png)\n## Events Webhook Trigger\nThe first node receives all messages from Slack API via Subscription Events API. You can find more information about setting up the subscription events API by [clicking here](https://api.slack.com/apis/connections/events-api). \n\nThe second node extracts the payload from slack into an object that n8n can understand. " -}, -"typeVersion": 1 -}, -{ -"id": "acb3fbdc-1fcb-4763-8529-ea2842607569", -"name": "Sticky Note15", -"type": "n8n-nodes-base.stickyNote", -"position": [ -900, --32.762682645579616 -], -"parameters": { -"color": 7, -"width": 566.0553219408072, -"height": 1390.6748140207737, -"content": "![n8n](https://uploads.n8n.io/templates/n8n.png)\n## Efficient Slack Interaction Handling with n8n\n\nThis section of the workflow is designed to efficiently manage and route messages and submissions from Slack based on specific triggers and conditions. When a Slack interaction occursโ€”such as a user triggering a vulnerability scan or generating a report through a modalโ€”the workflow intelligently routes the message to the appropriate action:\n\n- **Dynamic Routing**: Uses conditions to determine the nature of the Slack interaction, whether it's a direct command to initiate a scan or a request to generate a report.\n- **Modal Management**: Differentiates actions based on modal titles and `callback_id`s, ensuring that each type of submission is processed according to its context.\n- **Streamlined Responses**: After routing, the workflow promptly handles the necessary responses or actions, including closing modal popups and responding to Slack with appropriate confirmation or data.\n\n**Purpose**: This mechanism ensures that all interactions within Slack are handled quickly and accurately, automating responses and actions in real-time to enhance user experience and workflow efficiency." -}, -"typeVersion": 1 -}, -{ -"id": "85f370e8-70d2-466e-8f44-45eaf04a0d95", -"name": "Sticky Note11", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1473.6255461332685, -56.17183602125283 -], -"parameters": { -"color": 7, -"width": 396.6025898621133, -"height": 881.1659905894905, -"content": "![Imgur](https://uploads.n8n.io/templates/slack.png)\n## Display Modal Popup\nThis section pops open a modal window that is later used to send data into TheHive. \n\nModals can be customized to perform all sorts of actions. And they are natively mobile! You can see a screenshot of the Slack Modals on the right. \n\nLearn more about them by [clicking here](https://api.slack.com/surfaces/modals)" -}, -"typeVersion": 1 -}, -{ -"id": "cae79c1c-47f8-41c0-b1d0-e284359b52a8", -"name": "Sticky Note12", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1480, -960 -], -"parameters": { -"color": 7, -"width": 390.82613196003143, -"height": 950.1640646001949, -"content": "![Imgur](https://i.imgur.com/abGF8EO.png)\n## Modal Submission Payload\nThe data input into the Slack Modal makes its way into these set nodes that then pass that data into the Qualys Sub workflows that handle the heavy lifting. \n\n### Two Trigger Options\n- **Trigger a Vulnerability Scan** in the Slack UI which then sends a slack message to a channel of your choice summarizing and linking to the scan in slack\n- **Trigger report creation** in the Slack UI from the previously generated Vulnerability scan and upload a PDF copy of the report directly in a slack channel of your choice" -}, -"typeVersion": 1 -}, -{ -"id": "1017df8b-ff32-47aa-a4c2-a026e6597fa9", -"name": "Close Modal Popup", -"type": "n8n-nodes-base.respondToWebhook", -"position": [ -1000, -1140 -], -"parameters": { -"options": { -"responseCode": 204 -}, -"respondWith": "noData" -}, -"typeVersion": 1.1 -}, -{ -"id": "6b058f2a-2c0c-4326-aa42-08d840e306f7", -"name": "Sticky Note8", -"type": "n8n-nodes-base.stickyNote", -"position": [ --260, -280 -], -"parameters": { -"width": 675.1724774900403, -"height": 972.8853473866498, -"content": "![n8n](https://uploads.n8n.io/templates/n8n.png)\n## Enhance Security Operations with the Qualys Slack Shortcut Bot!\n\nOur **Qualys Slack Shortcut Bot** is strategically designed to facilitate immediate security operations directly from Slack. This powerful tool allows users to initiate vulnerability scans and generate detailed reports through simple Slack interactions, streamlining the process of managing security assessments.\n\n**Workflow Highlights:**\n- **Interactive Modals**: Utilizes Slack modals to gather user inputs for scan configurations and report generation, providing a user-friendly interface for complex operations.\n- **Dynamic Workflow Execution**: Integrates seamlessly with Qualys to execute vulnerability scans and create reports based on user-specified parameters.\n- **Real-Time Feedback**: Offers instant feedback within Slack, updating users about the status of their requests and delivering reports directly through Slack channels.\n\n\n**Operational Flow:**\n- **Parse Webhook Data**: Captures and parses incoming data from Slack to understand user commands accurately.\n- **Execute Actions**: Depending on the user's selection, the workflow triggers other sub-workflows like 'Qualys Start Vulnerability Scan' or 'Qualys Create Report' for detailed processing.\n- **Respond to Slack**: Ensures that every interaction is acknowledged, maintaining a smooth user experience by managing modal popups and sending appropriate responses.\n\n\n**Setup Instructions:**\n- Verify that Slack and Qualys API integrations are correctly configured for seamless interaction.\n- Customize the modal interfaces to align with your organization's operational protocols and security policies.\n- Test the workflow to ensure that it responds accurately to Slack commands and that the integration with Qualys is functioning as expected.\n\n\n**Need Assistance?**\n- Explore our [Documentation](https://docs.qualys.com) or get help from the [n8n Community](https://community.n8n.io) for more detailed guidance on setup and customization.\n\nDeploy this bot within your Slack environment to significantly enhance the efficiency and responsiveness of your security operations, enabling proactive management of vulnerabilities and streamlined reporting." -}, -"typeVersion": 1 -}, -{ -"id": "63b537e8-50c9-479d-96a4-54e621689a23", -"name": "Webhook", -"type": "n8n-nodes-base.webhook", -"position": [ -520, -640 -], -"webhookId": "4f86c00d-ceb4-4890-84c5-850f8e5dec05", -"parameters": { -"path": "4f86c00d-ceb4-4890-84c5-850f8e5dec05", -"options": {}, -"httpMethod": "POST", -"responseMode": "responseNode" -}, -"typeVersion": 2 -}, -{ -"id": "13500444-f2ff-4b77-8f41-8ac52d067ec7", -"name": "Respond to Slack Webhook - Vulnerability", -"type": "n8n-nodes-base.respondToWebhook", -"position": [ -1280, -560 -], -"parameters": { -"options": {}, -"respondWith": "noData" -}, -"typeVersion": 1.1 -}, -{ -"id": "e64cedf0-948c-43c8-a62c-d0ec2916f3b6", -"name": "Respond to Slack Webhook - Report", -"type": "n8n-nodes-base.respondToWebhook", -"position": [ -1280, -720 -], -"parameters": { -"options": { -"responseCode": 200 -}, -"respondWith": "noData" -}, -"typeVersion": 1.1 -}, -{ -"id": "d2e53f7b-090a-4330-949d-d66ac0e5849c", -"name": "Sticky Note1", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1494.8207799250774, -1400 -], -"parameters": { -"color": 5, -"width": 361.46312518523973, -"height": 113.6416448104651, -"content": "### ๐Ÿ™‹ Remember to update your Slack Channels\nDon't forget to update the Slack Channels in the Slack nodes in these two subworkflows. \n" -}, -"typeVersion": 1 -}, -{ -"id": "2731f910-288f-497a-a71d-d840a63b2930", -"name": "Sticky Note2", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1480, -400 -], -"parameters": { -"color": 5, -"width": 376.26546828439086, -"height": 113.6416448104651, -"content": "### ๐Ÿ™‹ Don't forget your slack credentials!\nThankfully n8n makes it easy, as long as you've added credentials to a normal slack node, these http nodes are a snap to change via the drop down. " -}, -"typeVersion": 1 -}, -{ -"id": "72105959-ee9b-4ce6-a7f8-0f5f112c14d2", -"name": "Sticky Note3", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1880, -500 -], -"parameters": { -"color": 5, -"width": 532.5097590794944, -"height": 671.013686767174, -"content": "![Imgur](https://uploads.n8n.io/templates/qualysscanreport.png)" -}, -"typeVersion": 1 -}, -{ -"id": "49b8ce63-cefd-483a-b802-03e3500d807b", -"name": "Sticky Note4", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1880, --200 -], -"parameters": { -"color": 5, -"width": 535.8333316661616, -"height": 658.907292269235, -"content": "![Imgur](https://uploads.n8n.io/templates/qualysmodalscan.png)" -}, -"typeVersion": 1 -}, -{ -"id": "3ec8c799-d5a5-4134-891a-59adb3e68e23", -"name": "Sticky Note5", -"type": "n8n-nodes-base.stickyNote", -"position": [ -280, --158.042446016207 -], -"parameters": { -"color": 5, -"width": 596.6847639718076, -"height": 422.00743613240917, -"content": "![Imgur](https://uploads.n8n.io/templates/qualysscanshortcut.png)\n### ๐Ÿค– Triggering this workflow is as easy as typing a backslash in Slack" -}, -"typeVersion": 1 -} -], -"pinData": {}, -"connections": { -"Webhook": { -"main": [ -[ -{ -"node": "Parse Webhook", -"type": "main", -"index": 0 -} -] -] -}, -"Parse Webhook": { -"main": [ -[ -{ -"node": "Route Message", -"type": "main", -"index": 0 -} -] -] -}, -"Route Message": { -"main": [ -[ -{ -"node": "Respond to Slack Webhook - Vulnerability", -"type": "main", -"index": 0 -} -], -[ -{ -"node": "Respond to Slack Webhook - Report", -"type": "main", -"index": 0 -} -], -[ -{ -"node": "Close Modal Popup", -"type": "main", -"index": 0 -} -] -] -}, -"Route Submission": { -"main": [ -[ -{ -"node": "Required Scan Variables", -"type": "main", -"index": 0 -} -], -[ -{ -"node": "Required Report Variables", -"type": "main", -"index": 0 -} -] -] -}, -"Close Modal Popup": { -"main": [ -[ -{ -"node": "Route Submission", -"type": "main", -"index": 0 -} -] -] -}, -"Required Scan Variables": { -"main": [ -[ -{ -"node": "Qualys Start Vulnerability Scan", -"type": "main", -"index": 0 -} -] -] -}, -"Required Report Variables": { -"main": [ -[ -{ -"node": "Qualys Create Report", -"type": "main", -"index": 0 -} -] -] -}, -"Respond to Slack Webhook - Report": { -"main": [ -[ -{ -"node": "Scan Report Task Modal", -"type": "main", -"index": 0 -} -] -] -}, -"Respond to Slack Webhook - Vulnerability": { -"main": [ -[ -{ -"node": "Vuln Scan Modal", -"type": "main", -"index": 0 -} -] -] -} -} -} \ No newline at end of file diff --git a/Slack/Enrich Pipedrive_s Organization Data with OpenAI GPT-4o & Notify it in Slack.txt b/Slack/Enrich Pipedrive_s Organization Data with OpenAI GPT-4o & Notify it in Slack.json similarity index 100% rename from Slack/Enrich Pipedrive_s Organization Data with OpenAI GPT-4o & Notify it in Slack.txt rename to Slack/Enrich Pipedrive_s Organization Data with OpenAI GPT-4o & Notify it in Slack.json diff --git a/Slack/IT Ops AI SlackBot Workflow - Chat with your knowledge base.txt b/Slack/IT Ops AI SlackBot Workflow - Chat with your knowledge base.json similarity index 100% rename from Slack/IT Ops AI SlackBot Workflow - Chat with your knowledge base.txt rename to Slack/IT Ops AI SlackBot Workflow - Chat with your knowledge base.json diff --git a/Slack/Sentiment Analysis Tracking on Support Issues with Linear and Slack (1).txt b/Slack/Sentiment Analysis Tracking on Support Issues with Linear and Slack.json similarity index 100% rename from Slack/Sentiment Analysis Tracking on Support Issues with Linear and Slack (1).txt rename to Slack/Sentiment Analysis Tracking on Support Issues with Linear and Slack.json diff --git a/Slack/Sentiment Analysis Tracking on Support Issues with Linear and Slack.txt b/Slack/Sentiment Analysis Tracking on Support Issues with Linear and Slack.txt deleted file mode 100644 index a819868..0000000 --- a/Slack/Sentiment Analysis Tracking on Support Issues with Linear and Slack.txt +++ /dev/null @@ -1,752 +0,0 @@ -{ -"nodes": [ -{ -"id": "82fd6023-2cc3-416e-83b7-fda24d07d77a", -"name": "Issues to List", -"type": "n8n-nodes-base.splitOut", -"position": [ -40, --100 -], -"parameters": { -"options": {}, -"fieldToSplitOut": "data.issues.nodes" -}, -"typeVersion": 1 -}, -{ -"id": "9cc77786-e14f-47c6-a3cf-60c2830612e6", -"name": "OpenAI Chat Model", -"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", -"position": [ -360, -80 -], -"parameters": { -"options": {} -}, -"credentials": { -"openAiApi": { -"id": "8gccIjcuf3gvaoEr", -"name": "OpenAi account" -} -}, -"typeVersion": 1 -}, -{ -"id": "821d4a60-81a4-4915-9c13-3d978cc0114b", -"name": "Combine Sentiment Analysis", -"type": "n8n-nodes-base.set", -"position": [ -700, --80 -], -"parameters": { -"mode": "raw", -"options": {}, -"jsonOutput": "={{\n{\n ...$('Issues to List').item.json,\n ...$json.output\n}\n}}" -}, -"typeVersion": 3.4 -}, -{ -"id": "fe6560f6-2e1b-4442-a2af-bd5a1623f213", -"name": "Sentiment over Issue Comments", -"type": "@n8n/n8n-nodes-langchain.informationExtractor", -"position": [ -360, --80 -], -"parameters": { -"text": "={{\n$json.comments.nodes.map(node => [\n `${node.user.displayName} commented on ${node.createdAt}:`,\n node.body\n].join('\\n')).join('---\\n')\n}}", -"options": {}, -"attributes": { -"attributes": [ -{ -"name": "sentiment", -"required": true, -"description": "One of positive, negative or neutral" -}, -{ -"name": "sentimentSummary", -"description": "Describe the sentiment of the conversation" -} -] -} -}, -"typeVersion": 1 -}, -{ -"id": "4fd0345d-e5bf-426d-8403-e2217e19bbea", -"name": "Copy of Issue", -"type": "n8n-nodes-base.set", -"position": [ -1200, --60 -], -"parameters": { -"mode": "raw", -"options": {}, -"jsonOutput": "={{ $json }}" -}, -"typeVersion": 3.4 -}, -{ -"id": "6d103d67-451e-4780-8f52-f4dba4b42860", -"name": "For Each Issue...", -"type": "n8n-nodes-base.splitInBatches", -"position": [ -1020, --60 -], -"parameters": { -"options": {} -}, -"typeVersion": 3 -}, -{ -"id": "032702d9-27d8-4735-b978-20b55bc1a74f", -"name": "Get Existing Sentiment", -"type": "n8n-nodes-base.airtable", -"position": [ -1380, --60 -], -"parameters": { -"base": { -"__rl": true, -"mode": "list", -"value": "appViDaeaFw4qv9La", -"cachedResultUrl": "https://airtable.com/appViDaeaFw4qv9La", -"cachedResultName": "Sentiment Analysis over Issue Comments" -}, -"table": { -"__rl": true, -"mode": "list", -"value": "tblhO0sfRhKP6ibS8", -"cachedResultUrl": "https://airtable.com/appViDaeaFw4qv9La/tblhO0sfRhKP6ibS8", -"cachedResultName": "Table 1" -}, -"options": { -"fields": [ -"Issue ID", -"Current Sentiment" -] -}, -"operation": "search", -"filterByFormula": "={Issue ID} = '{{ $json.identifier || 'XYZ' }}'" -}, -"credentials": { -"airtableTokenApi": { -"id": "Und0frCQ6SNVX3VV", -"name": "Airtable Personal Access Token account" -} -}, -"typeVersion": 2.1, -"alwaysOutputData": true -}, -{ -"id": "f2ded6fa-8b0f-4a34-868c-13c19f725c98", -"name": "Update Row", -"type": "n8n-nodes-base.airtable", -"position": [ -1560, --60 -], -"parameters": { -"base": { -"__rl": true, -"mode": "list", -"value": "appViDaeaFw4qv9La", -"cachedResultUrl": "https://airtable.com/appViDaeaFw4qv9La", -"cachedResultName": "Sentiment Analysis over Issue Comments" -}, -"table": { -"__rl": true, -"mode": "list", -"value": "tblhO0sfRhKP6ibS8", -"cachedResultUrl": "https://airtable.com/appViDaeaFw4qv9La/tblhO0sfRhKP6ibS8", -"cachedResultName": "Table 1" -}, -"columns": { -"value": { -"Summary": "={{ $('Copy of Issue').item.json.sentimentSummary || '' }}", -"Assigned": "={{ $('Copy of Issue').item.json.assignee.name }}", -"Issue ID": "={{ $('Copy of Issue').item.json.identifier }}", -"Issue Title": "={{ $('Copy of Issue').item.json.title }}", -"Issue Created": "={{ $('Copy of Issue').item.json.createdAt }}", -"Issue Updated": "={{ $('Copy of Issue').item.json.updatedAt }}", -"Current Sentiment": "={{ $('Copy of Issue').item.json.sentiment.toSentenceCase() }}", -"Previous Sentiment": "={{ !$json.isEmpty() ? $json['Current Sentiment'] : 'N/A' }}" -}, -"schema": [ -{ -"id": "id", -"type": "string", -"display": true, -"removed": true, -"readOnly": true, -"required": false, -"displayName": "id", -"defaultMatch": true -}, -{ -"id": "Issue ID", -"type": "string", -"display": true, -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Issue ID", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Previous Sentiment", -"type": "options", -"display": true, -"options": [ -{ -"name": "Positive", -"value": "Positive" -}, -{ -"name": "Negative", -"value": "Negative" -}, -{ -"name": "Neutral", -"value": "Neutral" -}, -{ -"name": "N/A", -"value": "N/A" -} -], -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Previous Sentiment", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Current Sentiment", -"type": "options", -"display": true, -"options": [ -{ -"name": "Positive", -"value": "Positive" -}, -{ -"name": "Negative", -"value": "Negative" -}, -{ -"name": "Neutral", -"value": "Neutral" -}, -{ -"name": "N/A", -"value": "N/A" -} -], -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Current Sentiment", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Summary", -"type": "string", -"display": true, -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Summary", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Issue Title", -"type": "string", -"display": true, -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Issue Title", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Issue Created", -"type": "dateTime", -"display": true, -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Issue Created", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Issue Updated", -"type": "dateTime", -"display": true, -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Issue Updated", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Assigned", -"type": "string", -"display": true, -"removed": false, -"readOnly": false, -"required": false, -"displayName": "Assigned", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Created", -"type": "string", -"display": true, -"removed": true, -"readOnly": true, -"required": false, -"displayName": "Created", -"defaultMatch": false, -"canBeUsedToMatch": true -}, -{ -"id": "Last Modified", -"type": "string", -"display": true, -"removed": true, -"readOnly": true, -"required": false, -"displayName": "Last Modified", -"defaultMatch": false, -"canBeUsedToMatch": true -} -], -"mappingMode": "defineBelow", -"matchingColumns": [ -"Issue ID" -] -}, -"options": {}, -"operation": "upsert" -}, -"credentials": { -"airtableTokenApi": { -"id": "Und0frCQ6SNVX3VV", -"name": "Airtable Personal Access Token account" -} -}, -"typeVersion": 2.1 -}, -{ -"id": "e6fb0b8f-2469-4b66-b9e2-f4f3c0a613af", -"name": "Airtable Trigger", -"type": "n8n-nodes-base.airtableTrigger", -"position": [ -1900, --40 -], -"parameters": { -"baseId": { -"__rl": true, -"mode": "id", -"value": "appViDaeaFw4qv9La" -}, -"tableId": { -"__rl": true, -"mode": "id", -"value": "tblhO0sfRhKP6ibS8" -}, -"pollTimes": { -"item": [ -{ -"mode": "everyHour" -} -] -}, -"triggerField": "Current Sentiment", -"authentication": "airtableTokenApi", -"additionalFields": {} -}, -"credentials": { -"airtableTokenApi": { -"id": "Und0frCQ6SNVX3VV", -"name": "Airtable Personal Access Token account" -} -}, -"typeVersion": 1 -}, -{ -"id": "669762c4-860b-43ad-b677-72d4564e1c29", -"name": "Sentiment Transition", -"type": "n8n-nodes-base.switch", -"position": [ -2080, --40 -], -"parameters": { -"rules": { -"values": [ -{ -"outputKey": "NON-NEGATIVE to NEGATIVE", -"conditions": { -"options": { -"version": 2, -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"operator": { -"type": "boolean", -"operation": "true", -"singleValue": true -}, -"leftValue": "={{ $json.fields[\"Previous Sentiment\"] !== 'Negative' && $json.fields[\"Current Sentiment\"] === 'Negative' }}", -"rightValue": "" -} -] -}, -"renameOutput": true -} -] -}, -"options": { -"fallbackOutput": "none" -} -}, -"typeVersion": 3.2 -}, -{ -"id": "2fbcfbea-3989-459b-8ca7-b65c130a479b", -"name": "Fetch Active Linear Issues", -"type": "n8n-nodes-base.graphql", -"position": [ --140, --100 -], -"parameters": { -"query": "=query (\n $filter: IssueFilter\n) {\n issues(\n filter: $filter\n ) {\n nodes {\n id\n identifier\n title\n description\n url\n createdAt\n updatedAt\n assignee {\n name\n }\n comments {\n nodes {\n id\n createdAt\n user {\n displayName\n }\n body\n }\n }\n }\n }\n}", -"endpoint": "https://api.linear.app/graphql", -"variables": "={{\n{\n \"filter\": {\n updatedAt: { gte: $now.minus(30, 'minutes').toISO() }\n }\n}\n}}", -"requestFormat": "json", -"authentication": "headerAuth" -}, -"credentials": { -"httpHeaderAuth": { -"id": "XME2Ubkuy9hpPEM5", -"name": "Linear.app (heightio)" -} -}, -"typeVersion": 1 -}, -{ -"id": "aaf1c25e-c398-4715-88bf-bd98daafc10f", -"name": "Schedule Trigger", -"type": "n8n-nodes-base.scheduleTrigger", -"position": [ --340, --100 -], -"parameters": { -"rule": { -"interval": [ -{ -"field": "minutes", -"minutesInterval": 30 -} -] -} -}, -"typeVersion": 1.2 -}, -{ -"id": "b3e2df39-90ce-4ebf-aa68-05499965ec30", -"name": "Deduplicate Notifications", -"type": "n8n-nodes-base.removeDuplicates", -"position": [ -2280, --40 -], -"parameters": { -"options": {}, -"operation": "removeItemsSeenInPreviousExecutions", -"dedupeValue": "={{ $json.fields[\"Issue ID\"] }}:{{ $json.fields['Last Modified'] }}" -}, -"typeVersion": 2 -}, -{ -"id": "2a116475-32cd-4c9d-bfc1-3bd494f79a49", -"name": "Report Issue Negative Transition", -"type": "n8n-nodes-base.slack", -"position": [ -2480, --40 -], -"webhookId": "612f1001-3fcc-480b-a835-05f9e2d56a5f", -"parameters": { -"text": "={{ $('Deduplicate Notifications').all().length }} Issues have transitions to Negative Sentiment", -"select": "channel", -"blocksUi": "={{\n{\n \"blocks\": [\n {\n \"type\": \"section\",\n \"text\": {\n \"type\": \"mrkdwn\",\n \"text\": \":rotating_light: The following Issues transitioned to Negative Sentiment\"\n }\n },\n {\n \"type\": \"divider\"\n },\n ...($('Deduplicate Notifications').all().map(item => (\n {\n \"type\": \"section\",\n \"text\": {\n \"type\": \"mrkdwn\",\n \"text\": `**\\n${$json.fields.Summary}`\n }\n }\n )))\n ]\n}\n}}", -"channelId": { -"__rl": true, -"mode": "list", -"value": "C0749JVFERK", -"cachedResultName": "n8n-tickets" -}, -"messageType": "block", -"otherOptions": {} -}, -"credentials": { -"slackApi": { -"id": "VfK3js0YdqBdQLGP", -"name": "Slack account" -} -}, -"executeOnce": true, -"typeVersion": 2.3 -}, -{ -"id": "1f3d30b6-de31-45a8-a872-554c339f112f", -"name": "Sticky Note", -"type": "n8n-nodes-base.stickyNote", -"position": [ --420, --320 -], -"parameters": { -"color": 7, -"width": 660, -"height": 440, -"content": "## 1. Continuously Monitor Active Linear Issues\n[Learn more about the GraphQL node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.graphql)\n\nTo keep up with the latest changes in our active Linear tickets, we'll need to use Linear's GraphQL endpoint because filtering is currently unavailable in the official Linear.app node.\n\nFor this demonstration, we'll check for updated tickets every 30mins." -}, -"typeVersion": 1 -}, -{ -"id": "9024512d-5cb9-4e9f-b6e1-495d1a32118a", -"name": "Sticky Note1", -"type": "n8n-nodes-base.stickyNote", -"position": [ -260, --320 -], -"parameters": { -"color": 7, -"width": 640, -"height": 560, -"content": "## 2. Sentiment Analysis on Current Issue Activity\n[Learn more about the Information Extractor node](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.information-extractor)\n\nWith our recently updated posts, we can use our AI to perform a quick sentiment analysis on the ongoing conversation to check the overall mood of the support issue. This is a great way to check how things are generally going in the support queue; positive should be normal but negative could indicate some uncomfortableness or even frustration." -}, -"typeVersion": 1 -}, -{ -"id": "233ebd6d-38cb-4f2d-84b5-29c97d30d77b", -"name": "Sticky Note2", -"type": "n8n-nodes-base.stickyNote", -"position": [ -920, --320 -], -"parameters": { -"color": 7, -"width": 840, -"height": 560, -"content": "## 3. Capture and Track Results in Airtable\n[Learn more about the Airtable node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.airtable)\n\nNext, we can capture this analysis in our insights database as means for human review. When the issue is new, we can create a new row but if the issue exists, we will update it's existing row instead.\n\nWhen updating an existing row, we move its previous \"current sentiment\" value into the \"previous sentiment\" column and replace with our new current sentiment. This gives us a \"sentiment transition\" which will be useful in the next step.\n\nCheck out the Airtable here: https://airtable.com/appViDaeaFw4qv9La/shrq6HgeYzpW6uwXL" -}, -"typeVersion": 1 -}, -{ -"id": "a2229225-b580-43cb-b234-4f69cb5924fd", -"name": "Sticky Note3", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1800, --320 -], -"parameters": { -"color": 7, -"width": 920, -"height": 560, -"content": "## 4. Get Notified when Sentiment becomes Negative\n[Learn more about the Slack node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/)\n\nA good use-case for tracking sentiment transitions could be to be alerted if ever an issue moves from a non-negative sentiment to a negative one. This could be a signal of issue handling troubles which may require attention before it escalates.\n\nIn this demonstration, we use the Airtable trigger to catch rows which have their sentiment column updated and check for the non-negative-to-negative sentiment transition using the switch node. For those matching rows, we combine add send a notification via slack. A cool trick is to use the \"remove duplication\" node to prevent repeat notifications for the same updates - here we combine the Linear issue key and the row's last modified date." -}, -"typeVersion": 1 -}, -{ -"id": "6f26769e-ec5d-46d0-ae0a-34148b24e6a2", -"name": "Sticky Note4", -"type": "n8n-nodes-base.stickyNote", -"position": [ --940, --720 -], -"parameters": { -"width": 480, -"height": 840, -"content": "## Try It Out!\n### This n8n template performs continous monitoring on Linear Issue conversations performing sentiment analysis and alerting when the sentiment becomes negative.\nThis is helpful to quickly identify difficult customer support situations early and prioritising them before they get out of hand.\n\n## How it works\n* A scheduled trigger is used to fetch recently updated issues in Linear using the GraphQL node.\n* Each issue's comments thread is passed into a simple Information Extractor node to identify the overall sentiment.\n* The resulting sentiment analysis combined with the some issue details are uploaded to Airtable for review.\n* When the template is re-run at a later date, each issue is re-analysed for sentiment\n* Each issue's new sentiment state is saved to the airtable whilst its previous state is moved to the \"previous sentiment\" column.\n* An Airtable trigger is used to watch for recently updated rows\n* Each matching Airtable row is filtered to check if it has a previous non-negative state but now has a negative state in its current sentiment.\n* The results are sent via notification to a team slack channel for priority.\n\n**Check out the sample Airtable here**: https://airtable.com/appViDaeaFw4qv9La/shrq6HgeYzpW6uwXL\n\n## How to use\n* Modify the GraphQL filter to fetch issues to a relevant issue type, team or person.\n* Update the Slack channel to ensure messages are sent to the correct location.\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!" -}, -"typeVersion": 1 -} -], -"pinData": {}, -"connections": { -"Update Row": { -"main": [ -[ -{ -"node": "For Each Issue...", -"type": "main", -"index": 0 -} -] -] -}, -"Copy of Issue": { -"main": [ -[ -{ -"node": "Get Existing Sentiment", -"type": "main", -"index": 0 -} -] -] -}, -"Issues to List": { -"main": [ -[ -{ -"node": "Sentiment over Issue Comments", -"type": "main", -"index": 0 -} -] -] -}, -"Airtable Trigger": { -"main": [ -[ -{ -"node": "Sentiment Transition", -"type": "main", -"index": 0 -} -] -] -}, -"Schedule Trigger": { -"main": [ -[ -{ -"node": "Fetch Active Linear Issues", -"type": "main", -"index": 0 -} -] -] -}, -"For Each Issue...": { -"main": [ -[], -[ -{ -"node": "Copy of Issue", -"type": "main", -"index": 0 -} -] -] -}, -"OpenAI Chat Model": { -"ai_languageModel": [ -[ -{ -"node": "Sentiment over Issue Comments", -"type": "ai_languageModel", -"index": 0 -} -] -] -}, -"Sentiment Transition": { -"main": [ -[ -{ -"node": "Deduplicate Notifications", -"type": "main", -"index": 0 -} -] -] -}, -"Get Existing Sentiment": { -"main": [ -[ -{ -"node": "Update Row", -"type": "main", -"index": 0 -} -] -] -}, -"Deduplicate Notifications": { -"main": [ -[ -{ -"node": "Report Issue Negative Transition", -"type": "main", -"index": 0 -} -] -] -}, -"Combine Sentiment Analysis": { -"main": [ -[ -{ -"node": "For Each Issue...", -"type": "main", -"index": 0 -} -] -] -}, -"Fetch Active Linear Issues": { -"main": [ -[ -{ -"node": "Issues to List", -"type": "main", -"index": 0 -} -] -] -}, -"Sentiment over Issue Comments": { -"main": [ -[ -{ -"node": "Combine Sentiment Analysis", -"type": "main", -"index": 0 -} -] -] -} -} -} \ No newline at end of file diff --git a/Slack/Slack slash commands AI Chat Bot.txt b/Slack/Slack slash commands AI Chat Bot.json similarity index 100% rename from Slack/Slack slash commands AI Chat Bot.txt rename to Slack/Slack slash commands AI Chat Bot.json diff --git a/Slack/Venafi Cloud Slack Cert Bot.txt b/Slack/Venafi Cloud Slack Cert Bot.json similarity index 100% rename from Slack/Venafi Cloud Slack Cert Bot.txt rename to Slack/Venafi Cloud Slack Cert Bot.json diff --git a/Telegram/AI-Powered Children_s Arabic Storytelling on Telegram.txt b/Telegram/AI-Powered Children_s Arabic Storytelling on Telegram.json similarity index 100% rename from Telegram/AI-Powered Children_s Arabic Storytelling on Telegram.txt rename to Telegram/AI-Powered Children_s Arabic Storytelling on Telegram.json diff --git a/Telegram/AI-Powered Children_s English Storytelling on Telegram with OpenAI.txt b/Telegram/AI-Powered Children_s English Storytelling on Telegram with OpenAI.json similarity index 100% rename from Telegram/AI-Powered Children_s English Storytelling on Telegram with OpenAI.txt rename to Telegram/AI-Powered Children_s English Storytelling on Telegram with OpenAI.json diff --git a/Telegram/Agentic Telegram AI bot with with LangChain nodes and new tools.txt b/Telegram/Agentic Telegram AI bot with with LangChain nodes and new tools.json similarity index 100% rename from Telegram/Agentic Telegram AI bot with with LangChain nodes and new tools.txt rename to Telegram/Agentic Telegram AI bot with with LangChain nodes and new tools.json diff --git a/Telegram/Angie, Personal AI Assistant with Telegram Voice and Text.txt b/Telegram/Angie, Personal AI Assistant with Telegram Voice and Text.json similarity index 100% rename from Telegram/Angie, Personal AI Assistant with Telegram Voice and Text.txt rename to Telegram/Angie, Personal AI Assistant with Telegram Voice and Text.json diff --git a/Telegram/Automated AI image analysis and response via Telegram.txt b/Telegram/Automated AI image analysis and response via Telegram.json similarity index 100% rename from Telegram/Automated AI image analysis and response via Telegram.txt rename to Telegram/Automated AI image analysis and response via Telegram.json diff --git a/Telegram/Chat with OpenAIs GPT via a simple Telegram Bot.txt b/Telegram/Chat with OpenAIs GPT via a simple Telegram Bot.json similarity index 100% rename from Telegram/Chat with OpenAIs GPT via a simple Telegram Bot.txt rename to Telegram/Chat with OpenAIs GPT via a simple Telegram Bot.json diff --git a/Telegram/Detect toxic language in Telegram messages.txt b/Telegram/Detect toxic language in Telegram messages.json similarity index 100% rename from Telegram/Detect toxic language in Telegram messages.txt rename to Telegram/Detect toxic language in Telegram messages.json diff --git a/Telegram/Image Creation with OpenAI and Telegram.txt b/Telegram/Image Creation with OpenAI and Telegram.json similarity index 100% rename from Telegram/Image Creation with OpenAI and Telegram.txt rename to Telegram/Image Creation with OpenAI and Telegram.json diff --git a/Telegram/Send a random recipe once a day to Telegram.txt b/Telegram/Send a random recipe once a day to Telegram.json similarity index 100% rename from Telegram/Send a random recipe once a day to Telegram.txt rename to Telegram/Send a random recipe once a day to Telegram.json diff --git a/Telegram/Telegram AI Bot_ NeurochainAI Text & Image - NeurochainAI Basic API Integration.txt b/Telegram/Telegram AI Bot_ NeurochainAI Text & Image - NeurochainAI Basic API Integration.json similarity index 100% rename from Telegram/Telegram AI Bot_ NeurochainAI Text & Image - NeurochainAI Basic API Integration.txt rename to Telegram/Telegram AI Bot_ NeurochainAI Text & Image - NeurochainAI Basic API Integration.json diff --git a/Telegram/Telegram AI Chatbot.txt b/Telegram/Telegram AI Chatbot.json similarity index 100% rename from Telegram/Telegram AI Chatbot.txt rename to Telegram/Telegram AI Chatbot.json diff --git a/Telegram/Telegram AI bot assistant_ ready-made template for voice & text messages.txt b/Telegram/Telegram AI bot assistant_ ready-made template for voice & text messages.json similarity index 100% rename from Telegram/Telegram AI bot assistant_ ready-made template for voice & text messages.txt rename to Telegram/Telegram AI bot assistant_ ready-made template for voice & text messages.json diff --git a/Telegram/Telegram AI bot with LangChain nodes.txt b/Telegram/Telegram AI bot with LangChain nodes.json similarity index 100% rename from Telegram/Telegram AI bot with LangChain nodes.txt rename to Telegram/Telegram AI bot with LangChain nodes.json diff --git a/Telegram/Telegram Bot with Supabase memory and OpenAI assistant integration.txt b/Telegram/Telegram Bot with Supabase memory and OpenAI assistant integration.json similarity index 100% rename from Telegram/Telegram Bot with Supabase memory and OpenAI assistant integration.txt rename to Telegram/Telegram Bot with Supabase memory and OpenAI assistant integration.json diff --git a/Telegram/Telegram chat with PDF.txt b/Telegram/Telegram chat with PDF.json similarity index 100% rename from Telegram/Telegram chat with PDF.txt rename to Telegram/Telegram chat with PDF.json diff --git a/Telegram/Telegram to Spotify with OpenAI.txt b/Telegram/Telegram to Spotify with OpenAI.json similarity index 100% rename from Telegram/Telegram to Spotify with OpenAI.txt rename to Telegram/Telegram to Spotify with OpenAI.json diff --git a/Telegram/Translate Telegram audio messages with AI (55 supported languages).txt b/Telegram/Translate Telegram audio messages with AI (55 supported languages).json similarity index 100% rename from Telegram/Translate Telegram audio messages with AI (55 supported languages).txt rename to Telegram/Translate Telegram audio messages with AI (55 supported languages).json diff --git a/Telegram/๐Ÿ‹๐Ÿค– DeepSeek AI Agent + Telegram + LONG TERM Memory ๐Ÿง .txt b/Telegram/๐Ÿ‹๐Ÿค– DeepSeek AI Agent + Telegram + LONG TERM Memory ๐Ÿง .json similarity index 100% rename from Telegram/๐Ÿ‹๐Ÿค– DeepSeek AI Agent + Telegram + LONG TERM Memory ๐Ÿง .txt rename to Telegram/๐Ÿ‹๐Ÿค– DeepSeek AI Agent + Telegram + LONG TERM Memory ๐Ÿง .json diff --git a/Telegram/๐Ÿค– Telegram Messaging Agent for Text_Audio_Images.txt b/Telegram/๐Ÿค– Telegram Messaging Agent for Text_Audio_Images.json similarity index 100% rename from Telegram/๐Ÿค– Telegram Messaging Agent for Text_Audio_Images.txt rename to Telegram/๐Ÿค– Telegram Messaging Agent for Text_Audio_Images.json diff --git a/Telegram/๐Ÿค–๐Ÿง  AI Agent Chatbot + LONG TERM Memory + Note Storage + Telegram.txt b/Telegram/๐Ÿค–๐Ÿง  AI Agent Chatbot + LONG TERM Memory + Note Storage + Telegram.json similarity index 100% rename from Telegram/๐Ÿค–๐Ÿง  AI Agent Chatbot + LONG TERM Memory + Note Storage + Telegram.txt rename to Telegram/๐Ÿค–๐Ÿง  AI Agent Chatbot + LONG TERM Memory + Note Storage + Telegram.json diff --git a/WhatsApp/Automate Sales Meeting Prep with AI & APIFY Sent To WhatsApp.txt b/WhatsApp/Automate Sales Meeting Prep with AI & APIFY Sent To WhatsApp.json similarity index 100% rename from WhatsApp/Automate Sales Meeting Prep with AI & APIFY Sent To WhatsApp.txt rename to WhatsApp/Automate Sales Meeting Prep with AI & APIFY Sent To WhatsApp.json diff --git a/WhatsApp/Building Your First WhatsApp Chatbot (1).txt b/WhatsApp/Building Your First WhatsApp Chatbot.json similarity index 100% rename from WhatsApp/Building Your First WhatsApp Chatbot (1).txt rename to WhatsApp/Building Your First WhatsApp Chatbot.json diff --git a/WhatsApp/Building Your First WhatsApp Chatbot.txt b/WhatsApp/Building Your First WhatsApp Chatbot.txt deleted file mode 100644 index 9263c95..0000000 --- a/WhatsApp/Building Your First WhatsApp Chatbot.txt +++ /dev/null @@ -1,700 +0,0 @@ -{ -"meta": { -"instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9" -}, -"nodes": [ -{ -"id": "77ee6494-4898-47dc-81d9-35daf6f0beea", -"name": "WhatsApp Trigger", -"type": "n8n-nodes-base.whatsAppTrigger", -"position": [ -1360, --280 -], -"webhookId": "aaa71f03-f7af-4d18-8d9a-0afb86f1b554", -"parameters": { -"updates": [ -"messages" -] -}, -"credentials": { -"whatsAppTriggerApi": { -"id": "H3uYNtpeczKMqtYm", -"name": "WhatsApp OAuth account" -} -}, -"typeVersion": 1 -}, -{ -"id": "57210e27-1f89-465a-98cc-43f890a4bf58", -"name": "OpenAI Chat Model", -"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", -"position": [ -1960, --200 -], -"parameters": { -"model": "gpt-4o-2024-08-06", -"options": {} -}, -"credentials": { -"openAiApi": { -"id": "8gccIjcuf3gvaoEr", -"name": "OpenAi account" -} -}, -"typeVersion": 1 -}, -{ -"id": "e1053235-0ade-4e36-9ad2-8b29c78fced8", -"name": "Window Buffer Memory", -"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow", -"position": [ -2080, --200 -], -"parameters": { -"sessionKey": "=whatsapp-75-{{ $json.messages[0].from }}", -"sessionIdType": "customKey" -}, -"typeVersion": 1.2 -}, -{ -"id": "69f1b78b-7c93-4713-863a-27e04809996f", -"name": "Vector Store Tool", -"type": "@n8n/n8n-nodes-langchain.toolVectorStore", -"position": [ -2200, --200 -], -"parameters": { -"name": "query_product_brochure", -"description": "Call this tool to query the product brochure. Valid for the year 2024." -}, -"typeVersion": 1 -}, -{ -"id": "170e8f7d-7e14-48dd-9f80-5352cc411fc1", -"name": "Embeddings OpenAI", -"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", -"position": [ -2200, -80 -], -"parameters": { -"model": "text-embedding-3-small", -"options": {} -}, -"credentials": { -"openAiApi": { -"id": "8gccIjcuf3gvaoEr", -"name": "OpenAi account" -} -}, -"typeVersion": 1 -}, -{ -"id": "ee78320b-d407-49e8-b4b8-417582a44709", -"name": "OpenAI Chat Model1", -"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", -"position": [ -2440, --60 -], -"parameters": { -"model": "gpt-4o-2024-08-06", -"options": {} -}, -"credentials": { -"openAiApi": { -"id": "8gccIjcuf3gvaoEr", -"name": "OpenAi account" -} -}, -"typeVersion": 1 -}, -{ -"id": "9dd89378-5acf-4ca6-8d84-e6e64254ed02", -"name": "When clicking โ€˜Test workflowโ€™", -"type": "n8n-nodes-base.manualTrigger", -"position": [ -0, --240 -], -"parameters": {}, -"typeVersion": 1 -}, -{ -"id": "e68fc137-1bcb-43f0-b597-3ae07f380c15", -"name": "Embeddings OpenAI1", -"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi", -"position": [ -760, --20 -], -"parameters": { -"model": "text-embedding-3-small", -"options": {} -}, -"credentials": { -"openAiApi": { -"id": "8gccIjcuf3gvaoEr", -"name": "OpenAi account" -} -}, -"typeVersion": 1 -}, -{ -"id": "2d31e92b-18d4-4f6b-8cdb-bed0056d50d7", -"name": "Default Data Loader", -"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", -"position": [ -900, --20 -], -"parameters": { -"options": {}, -"jsonData": "={{ $('Extract from File').item.json.text }}", -"jsonMode": "expressionData" -}, -"typeVersion": 1 -}, -{ -"id": "ca0c015e-fba2-4dca-b0fe-bac66681725a", -"name": "Recursive Character Text Splitter", -"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter", -"position": [ -900, -100 -], -"parameters": { -"options": {}, -"chunkSize": 2000, -"chunkOverlap": {} -}, -"typeVersion": 1 -}, -{ -"id": "63abb6b2-b955-4e65-9c63-3211dca65613", -"name": "Extract from File", -"type": "n8n-nodes-base.extractFromFile", -"position": [ -360, --240 -], -"parameters": { -"options": {}, -"operation": "pdf" -}, -"typeVersion": 1 -}, -{ -"id": "be2add9c-3670-4196-8c38-82742bf4f283", -"name": "get Product Brochure", -"type": "n8n-nodes-base.httpRequest", -"position": [ -180, --240 -], -"parameters": { -"url": "https://usa.yamaha.com/files/download/brochure/1/1474881/Yamaha-Powered-Loudspeakers-brochure-2024-en-web.pdf", -"options": {} -}, -"typeVersion": 4.2 -}, -{ -"id": "1ae5a311-36d7-4454-ab14-6788d1331780", -"name": "Reply To User", -"type": "n8n-nodes-base.whatsApp", -"position": [ -2820, --280 -], -"parameters": { -"textBody": "={{ $json.output }}", -"operation": "send", -"phoneNumberId": "477115632141067", -"requestOptions": {}, -"additionalFields": { -"previewUrl": false -}, -"recipientPhoneNumber": "={{ $('WhatsApp Trigger').item.json.messages[0].from }}" -}, -"credentials": { -"whatsAppApi": { -"id": "9SFJPeqrpChOkAmw", -"name": "WhatsApp account" -} -}, -"typeVersion": 1 -}, -{ -"id": "b6efba81-18b0-4378-bb91-51f39ca57f3e", -"name": "Reply To User1", -"type": "n8n-nodes-base.whatsApp", -"position": [ -1760, -80 -], -"parameters": { -"textBody": "=I'm unable to process non-text messages. Please send only text messages. Thanks!", -"operation": "send", -"phoneNumberId": "477115632141067", -"requestOptions": {}, -"additionalFields": { -"previewUrl": false -}, -"recipientPhoneNumber": "={{ $('WhatsApp Trigger').item.json.messages[0].from }}" -}, -"credentials": { -"whatsAppApi": { -"id": "9SFJPeqrpChOkAmw", -"name": "WhatsApp account" -} -}, -"typeVersion": 1 -}, -{ -"id": "52decd86-ac6c-4d91-a938-86f93ec5f822", -"name": "Product Catalogue", -"type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", -"position": [ -2200, --60 -], -"parameters": { -"memoryKey": "whatsapp-75" -}, -"typeVersion": 1 -}, -{ -"id": "6dd5a652-2464-4ab8-8e5f-568529299523", -"name": "Sticky Note", -"type": "n8n-nodes-base.stickyNote", -"position": [ --88.75, --473.4375 -], -"parameters": { -"color": 7, -"width": 640.4375, -"height": 434.6875, -"content": "## 1. Download Product Brochure PDF\n[Read more about the HTTP Request Tool](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest)\n\nImport your marketing PDF document to build your vector store. This will be used as the knowledgebase by the Sales AI Agent.\n\nFor this demonstration, we'll use the HTTP request node to import the YAMAHA POWERED LOUDSPEAKERS 2024 brochure ([Source](https://usa.yamaha.com/files/download/brochure/1/1474881/Yamaha-Powered-Loudspeakers-brochure-2024-en-web.pdf)) and an Extract from File node to extract the text contents. " -}, -"typeVersion": 1 -}, -{ -"id": "116663bc-d8d6-41a5-93dc-b219adbb2235", -"name": "Sticky Note1", -"type": "n8n-nodes-base.stickyNote", -"position": [ -580, --476 -], -"parameters": { -"color": 7, -"width": 614.6875, -"height": 731.1875, -"content": "## 2. Create Product Brochure Vector Store\n[Read more about the In-Memory Vector Store](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreinmemory/)\n\nVector stores are powerful databases which serve the purpose of matching a user's questions to relevant parts of a document. By creating a vector store of our product catalog, we'll allow users to query using natural language.\n\nTo keep things simple, we'll use the **In-memory Vector Store** which comes built-in to n8n and doesn't require a separate service. For production deployments, I'd recommend replacing the in-memory vector store with either [Qdrant](https://qdrant.tech) or [Pinecone](https://pinecone.io)." -}, -"typeVersion": 1 -}, -{ -"id": "86bd5334-d735-4650-aeff-06230119d705", -"name": "Create Product Catalogue", -"type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", -"position": [ -760, --200 -], -"parameters": { -"mode": "insert", -"memoryKey": "whatsapp-75", -"clearStore": true -}, -"typeVersion": 1 -}, -{ -"id": "b8078b0d-cbd7-423f-bb30-13902988be38", -"name": "Sticky Note2", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1254, --552 -], -"parameters": { -"color": 7, -"width": 546.6875, -"height": 484.1875, -"content": "## 3. Use the WhatsApp Trigger\n[Learn more about the WhatsApp Trigger](https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.whatsapptrigger/)\n\nThe WhatsApp Trigger allows you to receive incoming WhatsApp messages from customers. It requires a bit of setup so remember to follow the documentation carefully! Once ready however, it's quite easy to build powerful workflows which are easily accessible to users.\n\nNote that WhatsApp can send many message types such as audio and video so in this demonstration, we'll filter them out and just accept the text messages." -}, -"typeVersion": 1 -}, -{ -"id": "5bf7ed07-282b-4198-aa90-3e5ae5180404", -"name": "Sticky Note3", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1640, -280 -], -"parameters": { -"width": 338, -"height": 92, -"content": "### Want to handle all message types?\nCheck out my other WhatsApp template in my creator page! https://n8n.io/creators/jimleuk/" -}, -"typeVersion": 1 -}, -{ -"id": "a3661b59-25d2-446e-8462-32b4d692b69d", -"name": "Sticky Note4", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1640, --40 -], -"parameters": { -"color": 7, -"width": 337.6875, -"height": 311.1875, -"content": "### 3a. Handle Unsupported Message Types\nFor non-text messages, we'll just reply with a simple message to inform the sender." -}, -"typeVersion": 1 -}, -{ -"id": "ea3c9ee1-505a-40e7-82fe-9169bdbb80af", -"name": "Sticky Note5", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1840, --682.5 -], -"parameters": { -"color": 7, -"width": 746.6875, -"height": 929.1875, -"content": "## 4. Sales AI Agent Responds To Customers\n[Learn more about using AI Agents](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/)\n\nn8n's AI agents are powerful nodes which make it incredibly easy to use state-of-the-art AI in your workflows. Not only do they have the ability to remember conversations per individual customer but also tap into resources such as our product catalogue vector store to pull factual information and data for every question.\n\nIn this demonstration, we use an AI agent which is directed to help the user navigate the product brochure. A Chat memory subnode is attached to identify and keep track of the customer session. A Vector store tool is added to allow the Agent to tap into the product catalogue knowledgebase we built earlier." -}, -"typeVersion": 1 -}, -{ -"id": "5c72df8d-bca1-4634-b1ed-61ffec8bd103", -"name": "Sticky Note6", -"type": "n8n-nodes-base.stickyNote", -"position": [ -2620, --560 -], -"parameters": { -"color": 7, -"width": 495.4375, -"height": 484.1875, -"content": "## 5. Repond to WhatsApp User\n[Learn more about the WhatsApp Node](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.whatsapp/)\n\nThe WhatsApp node is the go-to if you want to interact with WhatsApp users. With this node, you can send text, images, audio and video messages as well as use your WhatsApp message templates.\n\nHere, we'll keep it simple by replying with a text message which is the output of the AI agent." -}, -"typeVersion": 1 -}, -{ -"id": "48ec809f-ca0e-4052-b403-9ad7077b3fff", -"name": "Sticky Note7", -"type": "n8n-nodes-base.stickyNote", -"position": [ --520, --620 -], -"parameters": { -"width": 401.25, -"height": 582.6283033962263, -"content": "## Try It Out!\n\n### This n8n template builds a simple WhatsApp chabot acting as a Sales Agent. The Agent is backed by a product catalog vector store to better answer user's questions.\n\n* This template is in 2 parts: creating the product catalog vector store and building the WhatsApp AI chatbot.\n* A product brochure is imported via HTTP request node and its text contents extracted.\n* The text contents are then uploaded to the in-memory vector store to build a knowledgebase for the chatbot.\n* A WhatsApp trigger is used to capture messages from customers where non-text messages are filtered out.\n* The customer's message is sent to the AI Agent which queries the product catalogue using the vector store tool.\n* The Agent's response is sent back to the user via the WhatsApp node.\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!" -}, -"typeVersion": 1 -}, -{ -"id": "87cf9b41-66de-49a7-aeb0-c8809191b5a0", -"name": "Handle Message Types", -"type": "n8n-nodes-base.switch", -"position": [ -1560, --280 -], -"parameters": { -"rules": { -"values": [ -{ -"outputKey": "Supported", -"conditions": { -"options": { -"version": 2, -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"operator": { -"type": "string", -"operation": "equals" -}, -"leftValue": "={{ $json.messages[0].type }}", -"rightValue": "text" -} -] -}, -"renameOutput": true -}, -{ -"outputKey": "Not Supported", -"conditions": { -"options": { -"version": 2, -"leftValue": "", -"caseSensitive": true, -"typeValidation": "strict" -}, -"combinator": "and", -"conditions": [ -{ -"id": "89971d8c-a386-4e77-8f6c-f491a8e84cb6", -"operator": { -"type": "string", -"operation": "notEquals" -}, -"leftValue": "={{ $json.messages[0].type }}", -"rightValue": "text" -} -] -}, -"renameOutput": true -} -] -}, -"options": {} -}, -"typeVersion": 3.2 -}, -{ -"id": "e52f0a50-0c34-4c4a-b493-4c42ba112277", -"name": "Sticky Note8", -"type": "n8n-nodes-base.stickyNote", -"position": [ --80, --20 -], -"parameters": { -"color": 5, -"width": 345.10906976744184, -"height": 114.53583720930231, -"content": "### You only have to run this part once!\nRun this step to populate our product catalogue vector. Run again if you want to update the vector store with a new version." -}, -"typeVersion": 1 -}, -{ -"id": "c1a7d6d1-191e-4343-af9f-f2c9eb4ecf49", -"name": "Sticky Note9", -"type": "n8n-nodes-base.stickyNote", -"position": [ -1260, --40 -], -"parameters": { -"color": 5, -"width": 364.6293255813954, -"height": 107.02804651162779, -"content": "### Activate your workflow to use!\nTo start using the WhatsApp chatbot, you'll need to activate the workflow. If you are self-hosting ensure WhatsApp is able to connect to your server." -}, -"typeVersion": 1 -}, -{ -"id": "a36524d0-22a6-48cc-93fe-b4571cec428a", -"name": "AI Sales Agent", -"type": "@n8n/n8n-nodes-langchain.agent", -"position": [ -1960, --400 -], -"parameters": { -"text": "={{ $json.messages[0].text.body }}", -"options": { -"systemMessage": "You are an assistant working for a company who sells Yamaha Powered Loudspeakers and helping the user navigate the product catalog for the year 2024. Your goal is not to facilitate a sale but if the user enquires, direct them to the appropriate website, url or contact information.\n\nDo your best to answer any questions factually. If you don't know the answer or unable to obtain the information from the datastore, then tell the user so." -}, -"promptType": "define" -}, -"typeVersion": 1.6 -} -], -"pinData": {}, -"connections": { -"AI Sales Agent": { -"main": [ -[ -{ -"node": "Reply To User", -"type": "main", -"index": 0 -} -] -] -}, -"WhatsApp Trigger": { -"main": [ -[ -{ -"node": "Handle Message Types", -"type": "main", -"index": 0 -} -] -] -}, -"Embeddings OpenAI": { -"ai_embedding": [ -[ -{ -"node": "Product Catalogue", -"type": "ai_embedding", -"index": 0 -} -] -] -}, -"Extract from File": { -"main": [ -[ -{ -"node": "Create Product Catalogue", -"type": "main", -"index": 0 -} -] -] -}, -"OpenAI Chat Model": { -"ai_languageModel": [ -[ -{ -"node": "AI Sales Agent", -"type": "ai_languageModel", -"index": 0 -} -] -] -}, -"Product Catalogue": { -"ai_vectorStore": [ -[ -{ -"node": "Vector Store Tool", -"type": "ai_vectorStore", -"index": 0 -} -] -] -}, -"Vector Store Tool": { -"ai_tool": [ -[ -{ -"node": "AI Sales Agent", -"type": "ai_tool", -"index": 0 -} -] -] -}, -"Embeddings OpenAI1": { -"ai_embedding": [ -[ -{ -"node": "Create Product Catalogue", -"type": "ai_embedding", -"index": 0 -} -] -] -}, -"OpenAI Chat Model1": { -"ai_languageModel": [ -[ -{ -"node": "Vector Store Tool", -"type": "ai_languageModel", -"index": 0 -} -] -] -}, -"Default Data Loader": { -"ai_document": [ -[ -{ -"node": "Create Product Catalogue", -"type": "ai_document", -"index": 0 -} -] -] -}, -"Handle Message Types": { -"main": [ -[ -{ -"node": "AI Sales Agent", -"type": "main", -"index": 0 -} -], -[ -{ -"node": "Reply To User1", -"type": "main", -"index": 0 -} -] -] -}, -"Window Buffer Memory": { -"ai_memory": [ -[ -{ -"node": "AI Sales Agent", -"type": "ai_memory", -"index": 0 -} -] -] -}, -"get Product Brochure": { -"main": [ -[ -{ -"node": "Extract from File", -"type": "main", -"index": 0 -} -] -] -}, -"Recursive Character Text Splitter": { -"ai_textSplitter": [ -[ -{ -"node": "Default Data Loader", -"type": "ai_textSplitter", -"index": 0 -} -] -] -}, -"When clicking โ€˜Test workflowโ€™": { -"main": [ -[ -{ -"node": "get Product Brochure", -"type": "main", -"index": 0 -} -] -] -} -} -} \ No newline at end of file diff --git a/WhatsApp/Complete business WhatsApp AI-Powered RAG Chatbot using OpenAI.txt b/WhatsApp/Complete business WhatsApp AI-Powered RAG Chatbot using OpenAI.json similarity index 100% rename from WhatsApp/Complete business WhatsApp AI-Powered RAG Chatbot using OpenAI.txt rename to WhatsApp/Complete business WhatsApp AI-Powered RAG Chatbot using OpenAI.json diff --git a/WhatsApp/Respond to WhatsApp Messages with AI Like a Pro!.txt b/WhatsApp/Respond to WhatsApp Messages with AI Like a Pro!.json similarity index 100% rename from WhatsApp/Respond to WhatsApp Messages with AI Like a Pro!.txt rename to WhatsApp/Respond to WhatsApp Messages with AI Like a Pro!.json diff --git a/WordPress/Auto-Categorize blog posts in wordpress using A.I..txt b/WordPress/Auto-Categorize blog posts in wordpress using A.I..json similarity index 100% rename from WordPress/Auto-Categorize blog posts in wordpress using A.I..txt rename to WordPress/Auto-Categorize blog posts in wordpress using A.I..json diff --git a/WordPress/Auto-Tag Blog Posts in WordPress with AI.txt b/WordPress/Auto-Tag Blog Posts in WordPress with AI.json similarity index 100% rename from WordPress/Auto-Tag Blog Posts in WordPress with AI.txt rename to WordPress/Auto-Tag Blog Posts in WordPress with AI.json diff --git a/WordPress/Automate Blog Creation in Brand Voice with AI.txt b/WordPress/Automate Blog Creation in Brand Voice with AI.json similarity index 100% rename from WordPress/Automate Blog Creation in Brand Voice with AI.txt rename to WordPress/Automate Blog Creation in Brand Voice with AI.json diff --git a/WordPress/Automate Content Generator for WordPress with DeepSeek R1.txt b/WordPress/Automate Content Generator for WordPress with DeepSeek R1.json similarity index 100% rename from WordPress/Automate Content Generator for WordPress with DeepSeek R1.txt rename to WordPress/Automate Content Generator for WordPress with DeepSeek R1.json diff --git a/WordPress/WordPress - AI Chatbot to enhance user experience - with Supabase and OpenAI.txt b/WordPress/WordPress - AI Chatbot to enhance user experience - with Supabase and OpenAI.json similarity index 100% rename from WordPress/WordPress - AI Chatbot to enhance user experience - with Supabase and OpenAI.txt rename to WordPress/WordPress - AI Chatbot to enhance user experience - with Supabase and OpenAI.json diff --git a/WordPress/Write a WordPress post with AI (starting from a few keywords).txt b/WordPress/Write a WordPress post with AI (starting from a few keywords).json similarity index 100% rename from WordPress/Write a WordPress post with AI (starting from a few keywords).txt rename to WordPress/Write a WordPress post with AI (starting from a few keywords).json