import { $ as defineStore, av as useFoldersStore, a1 as useWorkflowsStore, d7 as usePostHog, v as useSettingsStore, a_ as useLocalStorage, x as computed, fh as TEMPLATE_ONBOARDING_EXPERIMENT, c as useI18n, al as useTelemetry, a4 as STORES, bb as useCloudPlanStore, fi as BATCH_11AUG_EXPERIMENT } from "./index-CeNA_ukL.js";
const AGENT_WITH_MEMORY = {
  meta: {
    templateId: "035_template_onboarding-agent_with_memory"
  },
  name: "1. Agent with memory",
  nodes: [
    {
      id: "536fa635-c0c8-4fd1-84ef-d19585be64cf",
      name: "When chat message received",
      webhookId: "9baee3d2-b9cb-4333-b4d5-3b07db8da9b2",
      type: "@n8n/n8n-nodes-langchain.chatTrigger",
      typeVersion: 1.1,
      position: [0, 0],
      parameters: {
        options: {}
      }
    },
    {
      id: "1393095b-ec84-4514-b481-432609d1a5c5",
      name: "AI Agent",
      type: "@n8n/n8n-nodes-langchain.agent",
      typeVersion: 2.1,
      position: [208, 0],
      parameters: {
        options: {
          systemMessage: "=You are a helpful assistant\n\nTodays date: {{ $now }}"
        }
      }
    },
    {
      id: "658eb127-5a9d-4404-9270-72ef1da36ea3",
      name: "Sticky Note",
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [-464, -32],
      parameters: {
        content: `### Readme
Chat with an AI agent that remembers your previous messages during a conversation.
**Quick Start**
1. Open the **Model** node to claim your free API credits and connect to OpenAI. 
2. Click the **Open chat** button to start talking to the agent. Provide it with some information to remember, like your name.
3. Ask a follow-up question about the information you shared: "What's my name?"
---
**Learn More**
- [AI Agent node documentation](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/)
- [Simple Memory node documentation](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/)`,
        height: 396,
        width: 392,
        color: 4
      }
    },
    {
      id: "186173c3-d043-4485-b939-9fca3d1e906f",
      name: "Model",
      type: "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      typeVersion: 1.2,
      position: [160, 240],
      parameters: {
        model: {
          __rl: true,
          mode: "list",
          value: "gpt-4.1-mini"
        },
        options: {}
      }
    },
    {
      id: "dadaaa19-8378-4e23-9573-f9d3ff52c884",
      name: "Memory",
      type: "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      typeVersion: 1.3,
      position: [352, 240],
      parameters: {}
    }
  ],
  connections: {
    "When chat message received": {
      main: [
        [
          {
            node: "AI Agent",
            type: "main",
            index: 0
          }
        ]
      ]
    },
    Model: {
      ai_languageModel: [
        [
          {
            node: "AI Agent",
            type: "ai_languageModel",
            index: 0
          }
        ]
      ]
    },
    Memory: {
      ai_memory: [
        [
          {
            node: "AI Agent",
            type: "ai_memory",
            index: 0
          }
        ]
      ]
    }
  }
  // parentFolderId: newFolder.id,
};
const AGENT_WITH_TOOLS = {
  meta: {
    templateId: "035_template_onboarding-agent_with_tools"
  },
  name: "2. Agent with tools",
  nodes: [
    {
      parameters: {
        options: {}
      },
      type: "@n8n/n8n-nodes-langchain.chatTrigger",
      typeVersion: 1.1,
      position: [-48, -16],
      id: "f6c9fe3c-cbde-4514-9fcf-9d618526965c",
      name: "When chat message received",
      webhookId: "1bf95244-fbc3-4210-9420-f34a45c4f5f5"
    },
    {
      parameters: {
        options: {}
      },
      type: "@n8n/n8n-nodes-langchain.agent",
      typeVersion: 2.1,
      position: [208, -16],
      id: "5db1043f-de79-425a-a66b-8288c3aaa7df",
      name: "AI Agent"
    },
    {
      parameters: {},
      type: "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      typeVersion: 1.3,
      position: [208, 288],
      id: "29f1ba2f-7511-4771-958a-be6463a64d83",
      name: "Simple Memory"
    },
    {
      parameters: {
        operation: "update",
        documentId: {
          __rl: true,
          value: "1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8",
          mode: "list",
          cachedResultName: "Demo",
          cachedResultUrl: "https://docs.google.com/spreadsheets/d/1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8/edit?usp=drivesdk"
        },
        sheetName: {
          __rl: true,
          value: "gid=0",
          mode: "list",
          cachedResultName: "Sheet1",
          cachedResultUrl: "https://docs.google.com/spreadsheets/d/1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8/edit#gid=0"
        },
        columns: {
          mappingMode: "defineBelow",
          value: {
            ID: "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('ID__using_to_match_', ``, 'string') }}",
            Name: "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Name', ``, 'string') }}"
          },
          matchingColumns: ["ID"],
          schema: [
            {
              id: "ID",
              displayName: "ID",
              required: false,
              defaultMatch: false,
              display: true,
              type: "string",
              canBeUsedToMatch: true,
              removed: false
            },
            {
              id: "Name",
              displayName: "Name",
              required: false,
              defaultMatch: false,
              display: true,
              type: "string",
              canBeUsedToMatch: true,
              removed: false
            },
            {
              id: "row_number",
              displayName: "row_number",
              required: false,
              defaultMatch: false,
              display: true,
              type: "number",
              canBeUsedToMatch: true,
              readOnly: true,
              removed: true
            }
          ],
          attemptToConvertTypes: false,
          convertFieldsToString: false
        },
        options: {}
      },
      type: "n8n-nodes-base.googleSheetsTool",
      typeVersion: 4.6,
      position: [656, 640],
      id: "24d82ca2-b666-415b-9020-f88cf3e095e6",
      name: "Update",
      credentials: {}
    },
    {
      parameters: {
        operation: "append",
        documentId: {
          __rl: true,
          value: "1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8",
          mode: "list",
          cachedResultName: "Demo",
          cachedResultUrl: "https://docs.google.com/spreadsheets/d/1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8/edit?usp=drivesdk"
        },
        sheetName: {
          __rl: true,
          value: "gid=0",
          mode: "list",
          cachedResultName: "Sheet1",
          cachedResultUrl: "https://docs.google.com/spreadsheets/d/1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8/edit#gid=0"
        },
        columns: {
          mappingMode: "defineBelow",
          value: {
            // eslint-disable-next-line n8n-local-rules/no-interpolation-in-regular-string
            ID: "={{ `${Math.random()}`.replace('0.', '') }}",
            Name: "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Name', ``, 'string') }}"
          },
          matchingColumns: ["ID"],
          schema: [
            {
              id: "ID",
              displayName: "ID",
              required: false,
              defaultMatch: false,
              display: true,
              type: "string",
              canBeUsedToMatch: true,
              removed: false
            },
            {
              id: "Name",
              displayName: "Name",
              required: false,
              defaultMatch: false,
              display: true,
              type: "string",
              canBeUsedToMatch: true,
              removed: false
            },
            {
              id: "row_number",
              displayName: "row_number",
              required: false,
              defaultMatch: false,
              display: true,
              type: "number",
              canBeUsedToMatch: true,
              readOnly: true,
              removed: true
            }
          ],
          attemptToConvertTypes: false,
          convertFieldsToString: false
        },
        options: {}
      },
      type: "n8n-nodes-base.googleSheetsTool",
      typeVersion: 4.6,
      position: [464, 640],
      id: "a0554e4a-8a7a-480c-a9e6-5f9746252cdb",
      name: "Create",
      credentials: {}
    },
    {
      parameters: {
        documentId: {
          __rl: true,
          value: "1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8",
          mode: "list",
          cachedResultName: "Demo",
          cachedResultUrl: "https://docs.google.com/spreadsheets/d/1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8/edit?usp=drivesdk"
        },
        sheetName: {
          __rl: true,
          value: "gid=0",
          mode: "list",
          cachedResultName: "Sheet1",
          cachedResultUrl: "https://docs.google.com/spreadsheets/d/1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8/edit#gid=0"
        },
        options: {}
      },
      type: "n8n-nodes-base.googleSheetsTool",
      typeVersion: 4.6,
      position: [480, 288],
      id: "ef476f0d-bdfe-4f41-8690-fb270ed82469",
      name: "Read",
      credentials: {}
    },
    {
      parameters: {
        operation: "delete",
        documentId: {
          __rl: true,
          value: "1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8",
          mode: "list",
          cachedResultName: "Demo",
          cachedResultUrl: "https://docs.google.com/spreadsheets/d/1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8/edit?usp=drivesdk"
        },
        sheetName: {
          __rl: true,
          value: "gid=0",
          mode: "list",
          cachedResultName: "Sheet1",
          cachedResultUrl: "https://docs.google.com/spreadsheets/d/1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8/edit#gid=0"
        },
        startIndex: "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start_Row_Number', ``, 'number') }}",
        numberToDelete: "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Number_of_Rows_to_Delete', ``, 'number') }}"
      },
      type: "n8n-nodes-base.googleSheetsTool",
      typeVersion: 4.6,
      position: [864, 640],
      id: "d0cca35f-9e74-4935-92e2-9b5e37f1c7f4",
      name: "Delete",
      credentials: {}
    },
    {
      parameters: {
        content: "### Readme\nThis agent uses tools to interact with a simple spreadsheet of orders.\n\n**Quick Start**\n1. Copy this [spreadsheet](https://docs.google.com/spreadsheets/d/1vbFb2dhys1VafAmX-hRtiyrEDgNKj_xaAA6ZmH09EL8/edit?usp=sharing) into your Google Drive.\n2. Open the **Read** tool and connect your Google account by creating a credential and selecting the spreadsheet.\n3. Ask the Agent to calculate the total in the amount column, you should see it use the **Read** tool followed by the **Calculator**.\n4. Try some other questions and see how the agent responds.\n5. Use what you've learned to connect the other tools in the **Next steps** section.\n\n---\n\n**Learn More**\n- [Google sheet tool documentation](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/?utm_source=n8n_app&utm_medium=node_settings_modal-credential_link&utm_campaign=n8n-nodes-base.googleSheetsTool)\n- [Calculator tool documentation](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcalculator/)",
        height: 460,
        width: 440,
        color: 4
      },
      type: "n8n-nodes-base.stickyNote",
      position: [-576, -32],
      typeVersion: 1,
      id: "e57c1fe3-3ef9-447c-81e3-bdf8717706b9",
      name: "Sticky Note"
    },
    {
      parameters: {},
      type: "@n8n/n8n-nodes-langchain.toolCalculator",
      typeVersion: 1,
      position: [624, 288],
      id: "49030d8b-0818-455b-a472-356b620566c4",
      name: "Calculator"
    },
    {
      parameters: {
        model: {
          __rl: true,
          mode: "list",
          value: "gpt-4.1-mini"
        },
        options: {}
      },
      type: "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      typeVersion: 1.2,
      position: [48, 288],
      id: "67c78b12-b088-41b4-aeb4-70a7f056c9a7",
      name: "Model",
      credentials: {}
    },
    {
      parameters: {
        content: "## 🛠️ Tools",
        height: 224,
        width: 368,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      position: [400, 224],
      typeVersion: 1,
      id: "14c03c2d-e0ea-4958-94c1-3598e5c273d9",
      name: "Sticky Note1"
    },
    {
      parameters: {
        content: "## 🛠️ Next steps\n\nConnect these tools to perform create, read and update actions on your order list.",
        height: 320,
        width: 592,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      position: [400, 496],
      typeVersion: 1,
      id: "a683cb43-e740-497e-bb01-edebfe39a832",
      name: "Sticky Note2"
    }
  ],
  connections: {
    "When chat message received": {
      main: [
        [
          {
            node: "AI Agent",
            type: "main",
            index: 0
          }
        ]
      ]
    },
    "Simple Memory": {
      ai_memory: [
        [
          {
            node: "AI Agent",
            type: "ai_memory",
            index: 0
          }
        ]
      ]
    },
    Update: {
      ai_tool: [[]]
    },
    Create: {
      ai_tool: [[]]
    },
    Read: {
      ai_tool: [
        [
          {
            node: "AI Agent",
            type: "ai_tool",
            index: 0
          }
        ]
      ]
    },
    Delete: {
      ai_tool: [[]]
    },
    Calculator: {
      ai_tool: [
        [
          {
            node: "AI Agent",
            type: "ai_tool",
            index: 0
          }
        ]
      ]
    },
    Model: {
      ai_languageModel: [
        [
          {
            node: "AI Agent",
            type: "ai_languageModel",
            index: 0
          }
        ]
      ]
    }
  }
};
const AGENT_WITH_KNOWLEDGE = {
  meta: {
    templateId: "035_template_onboarding-agent_with_knowledge"
  },
  name: "3. Agent with knowledge",
  nodes: [
    {
      parameters: {
        formTitle: "Upload your data to test RAG",
        formFields: {
          values: [
            {
              fieldLabel: "Upload your file(s)",
              fieldType: "file",
              acceptFileTypes: ".pdf, .csv",
              requiredField: true
            }
          ]
        },
        options: {}
      },
      type: "n8n-nodes-base.formTrigger",
      typeVersion: 2.2,
      position: [-368, -304],
      id: "e45eaedc-7ed9-4fd6-b79b-82a155734bce",
      name: "Upload your file here",
      webhookId: "82848bc4-5ea2-4e5a-8bb6-3c09b94a8c5d"
    },
    {
      parameters: {
        options: {}
      },
      type: "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      typeVersion: 1.2,
      position: [288, 176],
      id: "f9f1745a-9c6d-42cf-8f8b-19a1c4c91b77",
      name: "Embeddings OpenAI"
    },
    {
      parameters: {
        dataType: "binary",
        options: {}
      },
      type: "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      typeVersion: 1.1,
      position: [80, -144],
      id: "56da285f-9ad9-4cb4-a7d4-fb0f035e9071",
      name: "Default Data Loader"
    },
    {
      parameters: {
        content: "### Readme\nLoad your data into a vector database with the 📚 **Load Data** flow, and then use your data as chat context with the 🐕 **Retriever** flow.\n\n**Quick start**\n1. Click on the `Execute Workflow` button to run the 📚 **Load Data** flow.\n2. Click on `Open Chat` button to run the 🐕 **Retriever** flow. Then ask a question about content from your document(s)\n\n\nFor more info, check [our docs on RAG in n8n](https://docs.n8n.io/advanced-ai/rag-in-n8n/).",
        height: 300,
        width: 440,
        color: 4
      },
      type: "n8n-nodes-base.stickyNote",
      position: [-896, -368],
      typeVersion: 1,
      id: "72cb28c7-572b-41ce-ba4c-2dd0dc80acb4",
      name: "Sticky Note"
    },
    {
      parameters: {
        content: "### 📚 Load Data Flow",
        height: 460,
        width: 700,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      position: [-416, -368],
      typeVersion: 1,
      id: "075a4895-8b5f-487b-b7ff-8766aa1d1450",
      name: "Sticky Note1"
    },
    {
      parameters: {
        mode: "insert",
        memoryKey: {
          __rl: true,
          value: "vector_store_key",
          mode: "list",
          cachedResultName: "vector_store_key"
        }
      },
      type: "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
      typeVersion: 1.2,
      position: [-176, -304],
      id: "d24732cb-b6b4-4eb6-ad47-1f290f0da13d",
      name: "Insert Data to Store"
    },
    {
      parameters: {
        mode: "retrieve-as-tool",
        toolName: "knowledge_base",
        toolDescription: "Use this knowledge base to answer questions from the user",
        memoryKey: {
          __rl: true,
          mode: "list",
          value: "vector_store_key"
        }
      },
      type: "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
      typeVersion: 1.2,
      position: [704, -96],
      id: "8915e9b6-2a6c-472c-b043-78c1d77888ae",
      name: "Query Data Tool"
    },
    {
      parameters: {
        options: {}
      },
      type: "@n8n/n8n-nodes-langchain.agent",
      typeVersion: 2,
      position: [704, -320],
      id: "a2baaa1d-beee-40a2-8b5f-757b2b1aaca9",
      name: "AI Agent"
    },
    {
      parameters: {
        options: {}
      },
      type: "@n8n/n8n-nodes-langchain.chatTrigger",
      typeVersion: 1.1,
      position: [480, -320],
      id: "c0a831dd-362c-4352-9409-bfe8c2e6f5ab",
      name: "When chat message received",
      webhookId: "4091fa09-fb9a-4039-9411-7104d213f601"
    },
    {
      parameters: {
        model: {
          __rl: true,
          mode: "list",
          value: "gpt-4o-mini"
        },
        options: {}
      },
      type: "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      typeVersion: 1.2,
      position: [480, -96],
      id: "2ba103b5-7783-49a7-9693-a156383ca697",
      name: "OpenAI Chat Model"
    },
    {
      parameters: {
        content: "### 🐕 2. Retriever Flow",
        height: 460,
        width: 680,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      position: [368, -368],
      typeVersion: 1,
      id: "729f9492-3811-43d8-8230-d9ad78d910f7",
      name: "Sticky Note2"
    },
    {
      parameters: {
        content: "### Embeddings\n\nThe Insert and Retrieve operation use the same embedding node.\n\nThis is to ensure that they are using the **exact same embeddings and settings**.\n\nDifferent embeddings might not work at all, or have unintended consequences.\n",
        height: 240,
        width: 320,
        color: 4
      },
      type: "n8n-nodes-base.stickyNote",
      position: [432, 144],
      typeVersion: 1,
      id: "20a6b946-5588-4df2-b1f6-952fc82d166c",
      name: "Sticky Note3"
    }
  ],
  connections: {
    "Upload your file here": {
      main: [
        [
          {
            node: "Insert Data to Store",
            type: "main",
            index: 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      ai_embedding: [
        [
          {
            node: "Insert Data to Store",
            type: "ai_embedding",
            index: 0
          },
          {
            node: "Query Data Tool",
            type: "ai_embedding",
            index: 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      ai_document: [
        [
          {
            node: "Insert Data to Store",
            type: "ai_document",
            index: 0
          }
        ]
      ]
    },
    "Query Data Tool": {
      ai_tool: [
        [
          {
            node: "AI Agent",
            type: "ai_tool",
            index: 0
          }
        ]
      ]
    },
    "When chat message received": {
      main: [
        [
          {
            node: "AI Agent",
            type: "main",
            index: 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      ai_languageModel: [
        [
          {
            node: "AI Agent",
            type: "ai_languageModel",
            index: 0
          }
        ]
      ]
    }
  },
  pinData: {}
};
const LOCAL_STORAGE_SETTING_KEY$1 = "N8N_AI_TEMPLATES_STARTER_COLLECTION_CALL_OUT_DISMISSED";
const useAITemplatesStarterCollectionStore = defineStore(
  STORES.AI_TEMPLATES_STARTER_COLLECTION,
  () => {
    const telemetry = useTelemetry();
    const i18n = useI18n();
    const foldersStore = useFoldersStore();
    const workflowsStore = useWorkflowsStore();
    const posthogStore = usePostHog();
    const settingsStore = useSettingsStore();
    const calloutDismissedRef = useLocalStorage(LOCAL_STORAGE_SETTING_KEY$1, false);
    const calloutDismissed = computed(() => calloutDismissedRef.value);
    const isFeatureEnabled = computed(() => {
      return settingsStore.isCloudDeployment && posthogStore.getVariant(TEMPLATE_ONBOARDING_EXPERIMENT.name) === TEMPLATE_ONBOARDING_EXPERIMENT.variantStarterPack;
    });
    const dismissCallout = () => {
      calloutDismissedRef.value = true;
    };
    const createStarterWorkflows = async (projectId, parentFolderId) => {
      const collectionFolder = await foldersStore.createFolder(
        i18n.baseText("workflows.ai.starter.collection.folder.name"),
        projectId,
        parentFolderId
      );
      const agentWitheMemory = {
        ...AGENT_WITH_MEMORY,
        parentFolderId: collectionFolder.id
      };
      const agentWithTools = {
        ...AGENT_WITH_TOOLS,
        parentFolderId: collectionFolder.id
      };
      const agentWithKnowledge = {
        ...AGENT_WITH_KNOWLEDGE,
        parentFolderId: collectionFolder.id
      };
      await workflowsStore.createNewWorkflow(agentWithKnowledge);
      await workflowsStore.createNewWorkflow(agentWithTools);
      await workflowsStore.createNewWorkflow(agentWitheMemory);
      dismissCallout();
      return collectionFolder;
    };
    const trackUserCreatedStarterCollection = (source) => {
      telemetry.track("User created AI templates starter collection", {
        source
      });
    };
    const trackUserDismissedCallout = () => {
      telemetry.track("User dismissed AI templates starter collection callout");
    };
    const trackUserOpenedWorkflow = (template) => {
      telemetry.track("User opened AI template workflow", {
        template
      });
    };
    const trackUserExecutedWorkflow = (template, status) => {
      telemetry.track("User executed AI template", {
        template,
        status
      });
    };
    return {
      isFeatureEnabled,
      calloutDismissed,
      dismissCallout,
      createStarterWorkflows,
      trackUserCreatedStarterCollection,
      trackUserDismissedCallout,
      trackUserOpenedWorkflow,
      trackUserExecutedWorkflow
    };
  }
);
const PLAYGROUND_1 = {
  meta: {
    templateId: "37_onboarding_experiments_batch_aug11-1_filter_data"
  },
  name: "▶️ 1. Filter data coming from an API",
  nodes: [
    {
      parameters: {},
      type: "n8n-nodes-base.merge",
      typeVersion: 3.2,
      position: [448, 176],
      id: "01f2f222-4ff2-41ec-afd9-68496d2e0cb3",
      name: "Merge"
    },
    {
      parameters: {},
      type: "n8n-nodes-base.manualTrigger",
      typeVersion: 1,
      position: [-768, 192],
      id: "e5ef1b32-ce8a-4c71-aa14-6885a09feabe",
      name: "When clicking ‘Execute workflow’"
    },
    {
      parameters: {
        assignments: {
          assignments: [
            {
              id: "2fd0b039-7dd9-4666-bc24-d3a81e6d4b68",
              name: "quote_category",
              value: "Personal",
              type: "string"
            }
          ]
        },
        options: {}
      },
      type: "n8n-nodes-base.set",
      typeVersion: 3.4,
      position: [160, 272],
      id: "42d065cd-1580-4b2a-8cc6-796be9a1da2a",
      name: "Set Category = Personal"
    },
    {
      parameters: {
        assignments: {
          assignments: [
            {
              id: "1ff91e4a-8460-4991-a273-c5f24b4038e9",
              name: "quote_category",
              value: "team",
              type: "string"
            }
          ]
        },
        options: {}
      },
      type: "n8n-nodes-base.set",
      typeVersion: 3.4,
      position: [160, 64],
      id: "a5259694-11ed-442c-be2a-e0000926fb30",
      name: "Set Category = Team"
    },
    {
      parameters: {
        assignments: {
          assignments: [
            {
              id: "c014a174-3f17-41bf-9fa5-19e822427346",
              name: "author",
              value: "={{ $('Make an API request to get a random quote').item.json.author }}",
              type: "string"
            },
            {
              id: "1d60a497-d964-406b-96fc-0206c82d5742",
              name: "quote",
              value: "={{ $('Make an API request to get a random quote').item.json.quote }}",
              type: "string"
            },
            {
              id: "5faf3496-8aa3-4a71-934c-6c5e3f08100b",
              name: "quote_category",
              value: "={{ $json.quote_category }}",
              type: "string"
            }
          ]
        },
        options: {}
      },
      type: "n8n-nodes-base.set",
      typeVersion: 3.4,
      position: [736, 176],
      id: "82b78022-f986-4bb0-aac8-f34558d46e5d",
      name: "Quote with category"
    },
    {
      parameters: {
        content: "The node below is an `HTTP Node`. It makes a request to an API, which returns a single random quote. ",
        height: 512,
        width: 304,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [-512, -48],
      id: "d6145c80-0504-4a0b-bfd7-5e85867b3d76",
      name: "Sticky Note3"
    },
    {
      parameters: {
        content: 'The `Filter node` checks if the quote contains "you" or "your" , to categorise the quote.\n\nIf matched, we create a `quote_category` variable in the `Set node` , with the value to "Team"',
        height: 512,
        width: 496,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [-160, -48],
      id: "75efc471-b2a7-4cb0-8299-f7ad710ff67e",
      name: "Sticky Note5"
    },
    {
      parameters: {
        content: "You can reference data input from earlier nodes.  We use here the `author` variable which was returned from the first node, the API request.\n\n",
        height: 512,
        width: 288,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [640, -48],
      id: "9df256c6-a437-4a53-a760-e6964e73c5c3",
      name: "Sticky Note6"
    },
    {
      parameters: {
        content: "The `Merge` combines the outputs of both branches into a single list.\n",
        height: 512,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [368, -48],
      id: "ad7ec1f3-7a95-444f-a5b8-363fc1224f95",
      name: "Sticky Note8"
    },
    {
      parameters: {
        content: '### ⏩ Next up: \n\n- Tweak and edit this workflow. It\'s made for you to hack up! \n*Example: Try adding the quote `id` to the final output in the "Quote with category" node.*\n\n- Try out the other workflows in the Playground \n\n\n\n\n',
        height: 240,
        width: 400,
        color: 4
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [960, 96],
      id: "0d9362fd-e399-4ce5-ba47-c9ab59b452de",
      name: "Sticky Note9"
    },
    {
      parameters: {
        content: "**Tip: Ressources**\n- Use the `n8n Assistant` or any LLM like `ChatGPT` to explain a screenshot, fix issues, or create workflows for you\n- Learn and get inspired with [templates](https://n8n.io/workflows/)\n- Follow the [n8n Courses](https://docs.n8n.io/courses/) or find tutorials on Youtube\n- Ask [the community](https://community.n8n.io/) for help \n",
        height: 176,
        width: 400,
        color: 5
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [960, 480],
      id: "724338d8-3e2b-43a1-8a3d-a38be2a50ed3",
      name: "Sticky Note7"
    },
    {
      parameters: {
        content: "## ▶ Click to start\n\n1. Click the orange `Execute Workflow` button  \n2. Double-click nodes to view data flows\n2. Re-run to see results change",
        height: 448,
        width: 368,
        color: 4
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [-912, -48],
      id: "a05fb79b-a6e6-498d-bdb2-c73ff7898233",
      name: "Sticky Note11"
    },
    {
      parameters: {
        conditions: {
          options: {
            caseSensitive: false,
            leftValue: "",
            typeValidation: "strict",
            version: 2
          },
          conditions: [
            {
              id: "4b2c3ebb-ad22-4d62-a64e-fdc2837565bc",
              leftValue: "={{ $json.quote }}",
              rightValue: "you",
              operator: {
                type: "string",
                operation: "contains"
              }
            },
            {
              id: "da268099-9c51-4e93-bc02-d8f0eda03ffd",
              leftValue: "={{ $json.quote }}",
              rightValue: "your",
              operator: {
                type: "string",
                operation: "contains"
              }
            }
          ],
          combinator: "or"
        },
        options: {
          ignoreCase: true
        }
      },
      type: "n8n-nodes-base.if",
      typeVersion: 2.2,
      position: [-96, 192],
      id: "f2dda369-4176-493e-8c6e-c3390a6968a3",
      name: "Filter the quote"
    },
    {
      parameters: {
        url: "https://dummyjson.com/quotes/random",
        options: {}
      },
      id: "c4437d01-a813-48a7-ac9a-366740d44428",
      name: "Make an API request to get a random quote",
      type: "n8n-nodes-base.httpRequest",
      typeVersion: 1,
      position: [-400, 192]
    }
  ],
  connections: {
    Merge: {
      main: [
        [
          {
            node: "Quote with category",
            type: "main",
            index: 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      main: [
        [
          {
            node: "Make an API request to get a random quote",
            type: "main",
            index: 0
          }
        ]
      ]
    },
    "Set Category = Personal": {
      main: [
        [
          {
            node: "Merge",
            type: "main",
            index: 1
          }
        ]
      ]
    },
    "Set Category = Team": {
      main: [
        [
          {
            node: "Merge",
            type: "main",
            index: 0
          }
        ]
      ]
    },
    "Filter the quote": {
      main: [
        [
          {
            node: "Set Category = Team",
            type: "main",
            index: 0
          }
        ],
        [
          {
            node: "Set Category = Personal",
            type: "main",
            index: 0
          }
        ]
      ]
    },
    "Make an API request to get a random quote": {
      main: [
        [
          {
            node: "Filter the quote",
            type: "main",
            index: 0
          }
        ]
      ]
    }
  }
};
const PLAYGROUND_2 = {
  meta: {
    templateId: "37_onboarding_experiments_batch_aug11-2_process_user_answers"
  },
  settings: {
    executionOrder: "v1"
  },
  name: "▶️ 2. Process user answers from a form",
  nodes: [
    {
      parameters: {
        numberInputs: 3
      },
      type: "n8n-nodes-base.merge",
      typeVersion: 3.2,
      position: [960, 336],
      id: "f6f94912-64a3-4671-9bda-abb03f4dc42e",
      name: "Merge"
    },
    {
      parameters: {
        content: "## ▶ Click to start \n\n1. Click the orange `Execute Worfklow` button\n2. Submit the form\n3. Double-click nodes to view data flows\n4. Try different answers",
        height: 432,
        width: 352,
        color: 4
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [-992, 160],
      id: "e5382a25-e813-4fba-bd8e-c16918521da7",
      name: "Sticky Note11"
    },
    {
      parameters: {
        content: "The `Switch` node routes the workflow based on the selected meal type: chicken, vegetarian, or surprise.",
        height: 432,
        width: 272,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [-592, 160],
      id: "ab955ee5-03ea-45cb-afbb-4b36ccfdbda6",
      name: "Sticky Note"
    },
    {
      parameters: {
        rules: {
          values: [
            {
              conditions: {
                options: {
                  caseSensitive: false,
                  leftValue: "",
                  typeValidation: "strict",
                  version: 2
                },
                conditions: [
                  {
                    id: "c90e7527-e4ff-41a8-9177-ffdf7d25c72e",
                    leftValue: "={{ $json['What type of meal would you like to cook tonight ? '] }}",
                    rightValue: "chicken",
                    operator: {
                      type: "string",
                      operation: "contains"
                    }
                  }
                ],
                combinator: "and"
              },
              renameOutput: true,
              outputKey: "chicken"
            },
            {
              conditions: {
                options: {
                  caseSensitive: false,
                  leftValue: "",
                  typeValidation: "strict",
                  version: 2
                },
                conditions: [
                  {
                    leftValue: "={{ $json['What type of meal would you like to cook tonight ? '] }}",
                    rightValue: "vegetarian",
                    operator: {
                      type: "string",
                      operation: "contains"
                    },
                    id: "18bd7d98-f5e3-46df-96c6-8d1c5fea7cf2"
                  }
                ],
                combinator: "and"
              },
              renameOutput: true,
              outputKey: "vegetarian"
            },
            {
              conditions: {
                options: {
                  caseSensitive: false,
                  leftValue: "",
                  typeValidation: "strict",
                  version: 2
                },
                conditions: [
                  {
                    id: "74441f58-e5e5-487c-972d-ec7f9107436d",
                    leftValue: "={{ $json['What type of meal would you like to cook tonight ? '] }}",
                    rightValue: "surprise",
                    operator: {
                      type: "string",
                      operation: "contains"
                    }
                  }
                ],
                combinator: "and"
              },
              renameOutput: true,
              outputKey: "surprise"
            }
          ]
        },
        options: {
          ignoreCase: true
        }
      },
      type: "n8n-nodes-base.switch",
      typeVersion: 3.2,
      position: [-512, 336],
      id: "6cbc178b-a420-4d57-a107-247600ae00c8",
      name: "Route based on meal preference"
    },
    {
      parameters: {
        url: "=https://dummyjson.com/recipes/{{$today.weekday}}",
        options: {}
      },
      type: "n8n-nodes-base.httpRequest",
      typeVersion: 4.2,
      position: [-160, 560],
      id: "98e4c862-5bf8-4cd9-8548-62d30b3c548a",
      name: "Get a random recipe from the API"
    },
    {
      parameters: {
        url: "=https://dummyjson.com/recipes/search?q={{ $json['What type of meal would you like to cook tonight ? '] }}",
        options: {}
      },
      type: "n8n-nodes-base.httpRequest",
      typeVersion: 4.2,
      position: [-160, 352],
      id: "52d53f34-9036-48f8-a71c-f501cc7e37b0",
      name: "Get vegetarian recipes from the API"
    },
    {
      parameters: {
        url: "=https://dummyjson.com/recipes/search?q=chicken",
        options: {}
      },
      type: "n8n-nodes-base.httpRequest",
      typeVersion: 4.2,
      position: [-160, 144],
      id: "240a9947-81fb-48ba-ac46-27381f4f67b6",
      name: "Get chicken recipes from the API"
    },
    {
      parameters: {
        content: "These `HTTP nodes` call the API to get recipes based on the user’s choice.",
        height: 816,
        width: 304,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [-272, -48],
      id: "f27030aa-9cca-4872-b672-b7ab8f307584",
      name: "Sticky Note2"
    },
    {
      parameters: {
        content: "In the Chicken branch, the API returns an array with 8 chicken recipes.\n\nThe `Split Out` node splits the array into separate items: 8 items, one per recipe.",
        height: 576,
        width: 224,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [80, -48],
      id: "e4bc5319-ae92-4a72-878e-8c83ca80d203",
      name: "Sticky Note4"
    },
    {
      parameters: {
        content: "The `Form node` displays the selected recipe on the completion screen",
        height: 384,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [1152, 208],
      id: "6eb7f690-756d-46df-b927-91426e9635da",
      name: "Sticky Note5"
    },
    {
      parameters: {
        content: "The `Merge` node combines data from all three recipe branches.",
        height: 384,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [864, 208],
      id: "8e52483c-c740-454b-898b-cf457af693a8",
      name: "Sticky Note6"
    },
    {
      parameters: {
        formTitle: "n8n Form",
        formFields: {
          values: [
            {
              fieldLabel: "What type of meal would you like to cook tonight ? ",
              fieldType: "dropdown",
              fieldOptions: {
                values: [
                  {
                    option: "Chicken-based"
                  },
                  {
                    option: "Vegetarian"
                  },
                  {
                    option: "Surprise me! "
                  }
                ]
              },
              requiredField: true
            },
            {
              fieldLabel: "What's your name? ",
              requiredField: true
            }
          ]
        },
        options: {}
      },
      type: "n8n-nodes-base.formTrigger",
      typeVersion: 2.2,
      position: [-864, 352],
      id: "3e5b2d36-5126-45f7-a81c-c1cfc82a392d",
      name: "Trigger when user submits form",
      webhookId: "d9a8c65e-486f-4304-a34d-87e9d68aa868"
    },
    {
      parameters: {
        content: "We want to suggest 1 recipe only, not 8.\nSo we sort by cooking time with the `Sort` node, and then pick the recipe  with lowest cooking time using `Limit` node",
        height: 384,
        width: 416,
        color: 7
      },
      type: "n8n-nodes-base.stickyNote",
      typeVersion: 1,
      position: [368, -48],
      id: "520e150e-9b22-4ed8-b3f2-1d128ed9e4c2",
      name: "Sticky Note7"
    },
    {
      parameters: {
        sortFieldsUi: {
          sortField: [
            {
              fieldName: "cookTimeMinutes"
            }
          ]
        },
        options: {}
      },
      type: "n8n-nodes-base.sort",
      typeVersion: 1,
      position: [432, 144],
      id: "17834d09-5d83-420f-9109-105e92baffef",
      name: "Sort by cooking time"
    },
    {
      parameters: {},
      type: "n8n-nodes-base.limit",
      typeVersion: 1,
      position: [624, 144],
      id: "9db21680-c947-44c1-8194-48e42f995755",
      name: "Limit to recipe with lowest cooking time"
    },
    {
      parameters: {
        operation: "completion",
        completionTitle: "Recipe",
        completionMessage: "=Hey {{ $('Trigger when user submits form').item.json['What\\'s your name? '] }}, 
\n\nWhat about cooking a {{ $json.name }} tonight? 
\n\nIt shouldn't take you more than {{ $json.prepTimeMinutes }} minutes to prepare.
\n\n