{"nodes":[{"name":"Get Team Members","type":"n8n-nodes-base.function","position":[1030,150],"parameters":{"functionCode":"const newItems = [];\n\nfor (const item of items[0].json.body.teamMembers) {\n  const newItem = { json: item }\n  newItems.push(newItem);\n}\n\nreturn newItems;\n"},"typeVersion":1,"alwaysOutputData":false,"id":"node-ff15d8bc"},{"name":"Merge","type":"n8n-nodes-base.merge","position":[1250,460],"parameters":{"mode":"multiplex"},"typeVersion":1,"id":"node-7dc64bcb"},{"name":"Query Current Semester","type":"n8n-nodes-base.notion","position":[700,20],"parameters":{"options":{"sort":{"sortValue":[{"key":"{{ $credentials.key }}","direction":"descending","timestamp":true}]},"filter":{"singleCondition":{"key":"{{ $credentials.key }}","condition":"equals","checkboxValue":true}}},"resource":"databasePage","operation":"getAll","returnAll":true,"databaseId":"2003319a-bc73-423a-9378-01999b4884fb"},"credentials":{"notionApi":"Oasis Hub Production"},"typeVersion":1,"id":"node-70a74bc9"},{"name":"Select Semester ID and Projects Count","type":"n8n-nodes-base.set","position":[1030,330],"parameters":{"values":{"number":[{"name":"projectsCount","value":"={{$json[\"Projects\"].length}}"}],"string":[{"name":"semesterID","value":"={{$json[\"id\"]}}"}]},"options":{},"keepOnlySet":true},"executeOnce":true,"typeVersion":1,"id":"node-d226abcd"},{"name":"Use Default Name if Not Specified","type":"n8n-nodes-base.set","position":[1470,460],"parameters":{"values":{"string":[{"name":"projectName","value":"={{ $json[\"projectName\"] == \"\" ? \"Project Group \" + ($json[\"projectsCount\"] + 1) : $json[\"projectName\"] }}"}]},"options":{}},"typeVersion":1,"id":"node-6791717c"},{"name":"Select Project Showcase ID","type":"n8n-nodes-base.set","position":[1890,460],"parameters":{"values":{"string":[{"name":"projectID","value":"={{$json[\"id\"]}}"}]},"options":{},"keepOnlySet":true},"typeVersion":1,"id":"node-2ce95420"},{"name":"Get Project Name & Idea","type":"n8n-nodes-base.set","position":[820,480],"parameters":{"values":{"string":[{"name":"projectName","value":"={{$json[\"body\"][\"projectName\"]}}"},{"name":"projectIdea","value":"={{$json[\"body\"][\"projectIdea\"]}}"}],"boolean":[]},"options":{},"keepOnlySet":true},"typeVersion":1,"id":"node-4d8d34ab"},{"name":"Create Project","type":"n8n-nodes-base.notion","position":[1690,460],"parameters":{"blockUi":{"blockValues":[]},"resource":"databasePage","databaseId":"f9c8a070-d398-482b-a7a4-5e42c7982e6a","propertiesUi":{"propertyValues":[{"key":"Name|title","title":"={{$json[\"projectName\"]}}"},{"key":"{{ $credentials.key }}","relationValue":["={{$json[\"semesterID\"]}}"]},{"key":"{{ $credentials.key }}","textContent":"={{$json[\"projectIdea\"]}}"}]}},"credentials":{"notionApi":"Oasis Hub Production"},"typeVersion":1,"id":"node-6a1e7969"},{"name":"If user exists","type":"n8n-nodes-base.if","position":[1690,170],"parameters":{"conditions":{"string":[],"boolean":[{"value1":"={{Object.keys($json).includes(\"id\") }}","value2":true}]}},"executeOnce":false,"typeVersion":1,"alwaysOutputData":false,"id":"node-60b19e67"},{"name":"Create User","type":"n8n-nodes-base.notion","position":[1890,270],"parameters":{"resource":"databasePage","databaseId":"27a30c5b-c418-4200-8f48-d7fb7b043fbe","propertiesUi":{"propertyValues":[{"key":"Name|title","title":"={{$json[\"name\"]}}"},{"key":"{{ $credentials.key }}","emailValue":"={{$json[\"email\"]}}"}]}},"credentials":{"notionApi":"Oasis Hub Production"},"typeVersion":1,"id":"node-8814542c"},{"name":"Query for User","type":"n8n-nodes-base.notion","position":[1250,260],"parameters":{"options":{"filter":{"singleCondition":{"key":"{{ $credentials.key }}","condition":"equals","emailValue":"={{$json[\"email\"]}}"}}},"resource":"databasePage","operation":"getAll","returnAll":true,"databaseId":"27a30c5b-c418-4200-8f48-d7fb7b043fbe"},"credentials":{"notionApi":"Oasis Hub Production"},"executeOnce":false,"typeVersion":1,"alwaysOutputData":true,"id":"node-2ed6aefb"},{"name":"Merge1","type":"n8n-nodes-base.merge","position":[1460,170],"parameters":{"mode":"mergeByKey","propertyName1":"email","propertyName2":"Email"},"typeVersion":1,"id":"node-0a564343"},{"name":"Merge2","type":"n8n-nodes-base.merge","position":[2750,-160],"parameters":{"mode":"multiplex"},"typeVersion":1,"id":"node-68e241f7"},{"name":"Update Semester for User","type":"n8n-nodes-base.notion","position":[3240,-160],"parameters":{"pageId":"={{$json[\"id\"]}}","resource":"databasePage","operation":"update","propertiesUi":{"propertyValues":[{"key":"{{ $credentials.key }}","relationValue":["={{$json[\"allSemesterIDs\"].join(',')}}"]}]}},"credentials":{"notionApi":"Oasis Hub Production"},"typeVersion":1,"id":"node-5c936e97"},{"name":"Query User","type":"n8n-nodes-base.notion","position":[2460,170],"parameters":{"options":{"filter":{"singleCondition":{"key":"{{ $credentials.key }}","condition":"equals","emailValue":"={{$json[\"email\"]}}"}}},"resource":"databasePage","operation":"getAll","returnAll":true,"databaseId":"27a30c5b-c418-4200-8f48-d7fb7b043fbe"},"credentials":{"notionApi":"Oasis Hub Production"},"typeVersion":1,"alwaysOutputData":true,"id":"node-991b361d"},{"name":"Select Semester ID","type":"n8n-nodes-base.set","position":[1020,-180],"parameters":{"values":{"string":[{"name":"semesterID","value":"={{$json[\"id\"]}}"}]},"options":{},"keepOnlySet":true},"executeOnce":true,"typeVersion":1,"id":"node-94bb77e3"},{"name":"Update Project Relation","type":"n8n-nodes-base.notion","position":[3240,440],"parameters":{"pageId":"={{$json[\"id\"]}}","resource":"databasePage","operation":"update","propertiesUi":{"propertyValues":[{"key":"{{ $credentials.key }}","relationValue":["={{$json[\"allProjectIDs\"].join(\",\")}}"]}]}},"credentials":{"notionApi":"Oasis Hub Production"},"typeVersion":1,"id":"node-b9bf7975"},{"name":"Merge3","type":"n8n-nodes-base.merge","position":[2750,440],"parameters":{"mode":"multiplex"},"typeVersion":1,"id":"node-c771ef0c"},{"name":"Concatenate SemesterIDs","type":"n8n-nodes-base.function","position":[3010,-160],"parameters":{"functionCode":"for (item of items) {\n  // Get the current semester ID\n  const currentSemesterID = item.json[\"semesterID\"]\n  let allSemesterIDs = [currentSemesterID];\n\n  // Add semesters that the user is already associated with\n  if (item.json[\"Semesters\"]?.length > 0) {\n    allSemesterIDs = allSemesterIDs.concat(item.json[\"Semesters\"].filter(semesterID => semesterID !== currentSemesterID));\n  }\n\n  // Set allSemesterIDs which is used to update the relation\n  item.json[\"allSemesterIDs\"] = allSemesterIDs\n}\n\nreturn items;\n"},"typeVersion":1,"id":"node-470af2a6"},{"name":"Concatenate ProjectIDs","type":"n8n-nodes-base.function","position":[3000,440],"parameters":{"functionCode":"for (item of items) {\n  // Get the project id for the new project\n  const newProjectID = item.json[\"projectID\"]\n  let allProjectIDs = [newProjectID];\n\n  // Add projects that the user already has\n  if (item.json[\"Project\"]?.length > 0) {\n    allWorkspaceIDs = allWorkspaceIDs.concat(item.json[\"Project\"].filter(projectID => projectID !== newProjectID));\n  }\n\n  // Set allProjectIDs which is used to update the relation\n  item.json[\"allProjectIDs\"] = allProjectIDs\n}\n\nreturn items;\n"},"typeVersion":1,"id":"node-be10fdce"},{"name":"Merge4","type":"n8n-nodes-base.merge","position":[2240,170],"parameters":{},"typeVersion":1,"id":"node-216cb2a2"},{"name":"Set Email","type":"n8n-nodes-base.set","position":[2060,270],"parameters":{"values":{"string":[{"name":"email","value":"={{$json[\"Email\"]}}"}]},"options":{},"keepOnlySet":true},"typeVersion":1,"id":"node-0f69a0c2"},{"name":"Team Creation","type":"n8n-nodes-base.webhook","notes":"Example Input Data:\n{\"projectIdea\":\"A hub for all things Oasis\",\"projectName\":\"Oasis Hub\",\"teamMembers\":[{\"name\":\"Will Stenzel\",\"email\":\"stenzel.w@northeastern.edu\"},{\"name\":\"Jane Doe\",\"email\":\"doe.j@northeastern.edu\"}]}","position":[460,150],"webhookId":"6f000a46-9bbf-4e1c-8e11-b64d9b8c8fb7","parameters":{"path":"team-create","options":{"responseData":""},"httpMethod":"POST","authentication":"{{ $credentials.basicAuth }}"},"credentials":{"httpBasicAuth":"Oasis Basic Auth Creds"},"notesInFlow":true,"typeVersion":1,"id":"node-63465292"},{"id":"error-b02d4898","name":"Error Handler","type":"n8n-nodes-base.stopAndError","typeVersion":1,"position":[1000,400],"parameters":{"message":"Workflow execution error","options":{}}}],"connections":{},"name":"Production Workflow","settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3},"meta":{"instanceId":"workflow-991fdf94","versionId":"1.0.0","createdAt":"2025-09-29T07:07:51.178322","updatedAt":"2025-09-29T07:07:51.178332","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"description":"Production-ready workflow: Production Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}