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"
-},
-"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[](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": "\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": "\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": "\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": "\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": "\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": ""
-},
-"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": ""
-},
-"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": "\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