{
  "openruna_format": "flow-graph-v1",
  "title": "AI Logo Sheet Extractor to Airtable",
  "slug": "ai-logo-sheet-extractor-to-airtable-2",
  "source_filename": "1834_Splitout_Code_Automation_Triggered.json",
  "nodes": [
    {
      "id": "On form submission",
      "name": "On form submission",
      "integration": "form",
      "kind": "trigger"
    },
    {
      "id": "Retrieve and Parser Agent",
      "name": "Retrieve and Parser Agent",
      "integration": "@n8n/n8n-nodes-langchain.agent",
      "kind": "action"
    },
    {
      "id": "JSON it",
      "name": "JSON it",
      "integration": "set",
      "kind": "logic"
    },
    {
      "id": "Structured Output Parser",
      "name": "Structured Output Parser",
      "integration": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "kind": "action"
    },
    {
      "id": "Check if Attribute exists",
      "name": "Check if Attribute exists",
      "integration": "airtable",
      "kind": "action"
    },
    {
      "id": "Merge",
      "name": "Merge",
      "integration": "merge",
      "kind": "logic"
    },
    {
      "id": "Map Attribute ID",
      "name": "Map Attribute ID",
      "integration": "set",
      "kind": "logic"
    },
    {
      "id": "Loop Over Attributes",
      "name": "Loop Over Attributes",
      "integration": "splitInBatches",
      "kind": "logic"
    },
    {
      "id": "All Attributes",
      "name": "All Attributes",
      "integration": "set",
      "kind": "logic"
    },
    {
      "id": "Wait for Attribute Creation",
      "name": "Wait for Attribute Creation",
      "integration": "merge",
      "kind": "logic"
    },
    {
      "id": "Change each Attribute to the corresponding RecID",
      "name": "Change each Attribute to the corresponding RecID",
      "integration": "code",
      "kind": "logic"
    },
    {
      "id": "Split Out Tools",
      "name": "Split Out Tools",
      "integration": "splitOut",
      "kind": "logic"
    },
    {
      "id": "Split Out each Attribute String",
      "name": "Split Out each Attribute String",
      "integration": "splitOut",
      "kind": "logic"
    },
    {
      "id": "Generate Unique Hash for Name",
      "name": "Generate Unique Hash for Name",
      "integration": "crypto",
      "kind": "action"
    },
    {
      "id": "Create if not Exist",
      "name": "Create if not Exist",
      "integration": "airtable",
      "kind": "action"
    },
    {
      "id": "Merge Old Data + RecID",
      "name": "Merge Old Data + RecID",
      "integration": "merge",
      "kind": "logic"
    },
    {
      "id": "Only what we need",
      "name": "Only what we need",
      "integration": "set",
      "kind": "logic"
    },
    {
      "id": "Determine Attributes we should save",
      "name": "Determine Attributes we should save",
      "integration": "code",
      "kind": "logic"
    },
    {
      "id": "Split Out similar",
      "name": "Split Out similar",
      "integration": "splitOut",
      "kind": "logic"
    },
    {
      "id": "Merge1",
      "name": "Merge1",
      "integration": "merge",
      "kind": "logic"
    },
    {
      "id": "Generate Unique Hash for Similar",
      "name": "Generate Unique Hash for Similar",
      "integration": "crypto",
      "kind": "action"
    },
    {
      "id": "It Should exists",
      "name": "It Should exists",
      "integration": "airtable",
      "kind": "action"
    },
    {
      "id": "All Similar",
      "name": "All Similar",
      "integration": "set",
      "kind": "logic"
    },
    {
      "id": "Merge2",
      "name": "Merge2",
      "integration": "merge",
      "kind": "logic"
    },
    {
      "id": "Change each Smiliar to the corresponding RecID",
      "name": "Change each Smiliar to the corresponding RecID",
      "integration": "code",
      "kind": "logic"
    },
    {
      "id": "Determine Similar we should save",
      "name": "Determine Similar we should save",
      "integration": "code",
      "kind": "logic"
    },
    {
      "id": "Save all this juicy data",
      "name": "Save all this juicy data",
      "integration": "airtable",
      "kind": "action"
    },
    {
      "id": "Map Agent Input",
      "name": "Map Agent Input",
      "integration": "set",
      "kind": "logic"
    },
    {
      "id": "gpt-4o",
      "name": "gpt-4o",
      "integration": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "kind": "action"
    },
    {
      "id": "Table: Tools",
      "name": "Table: Tools",
      "integration": "noOp",
      "kind": "logic"
    },
    {
      "id": "Table: Attributes",
      "name": "Table: Attributes",
      "integration": "noOp",
      "kind": "logic"
    },
    {
      "id": "make it a readable list",
      "name": "make it a readable list",
      "integration": "html",
      "kind": "action"
    },
    {
      "id": "Get Schema",
      "name": "Get Schema",
      "integration": "airtable",
      "kind": "action"
    }
  ],
  "edges": [
    {
      "from": "Merge",
      "to": "Map Attribute ID"
    },
    {
      "from": "Merge1",
      "to": "All Similar"
    },
    {
      "from": "Merge2",
      "to": "Change each Smiliar to the corresponding RecID"
    },
    {
      "from": "JSON it",
      "to": "Split Out Tools"
    },
    {
      "from": "Get Schema",
      "to": "make it a readable list"
    },
    {
      "from": "All Similar",
      "to": "Merge2"
    },
    {
      "from": "Table: Tools",
      "to": "Table: Tools"
    },
    {
      "from": "Table: Tools",
      "to": "Table: Attributes"
    },
    {
      "from": "All Attributes",
      "to": "Wait for Attribute Creation"
    },
    {
      "from": "Map Agent Input",
      "to": "Retrieve and Parser Agent"
    },
    {
      "from": "Split Out Tools",
      "to": "Loop Over Attributes"
    },
    {
      "from": "Split Out Tools",
      "to": "Wait for Attribute Creation"
    },
    {
      "from": "It Should exists",
      "to": "Merge1"
    },
    {
      "from": "Map Attribute ID",
      "to": "Loop Over Attributes"
    },
    {
      "from": "Only what we need",
      "to": "Merge Old Data + RecID"
    },
    {
      "from": "Split Out similar",
      "to": "Generate Unique Hash for Similar"
    },
    {
      "from": "Split Out similar",
      "to": "Merge1"
    },
    {
      "from": "On form submission",
      "to": "Map Agent Input"
    },
    {
      "from": "Create if not Exist",
      "to": "Only what we need"
    },
    {
      "from": "Loop Over Attributes",
      "to": "All Attributes"
    },
    {
      "from": "Loop Over Attributes",
      "to": "Split Out each Attribute String"
    },
    {
      "from": "Merge Old Data + RecID",
      "to": "Determine Attributes we should save"
    },
    {
      "from": "Check if Attribute exists",
      "to": "Merge"
    },
    {
      "from": "Retrieve and Parser Agent",
      "to": "JSON it"
    },
    {
      "from": "Wait for Attribute Creation",
      "to": "Change each Attribute to the corresponding RecID"
    },
    {
      "from": "Generate Unique Hash for Name",
      "to": "Create if not Exist"
    },
    {
      "from": "Generate Unique Hash for Name",
      "to": "Merge Old Data + RecID"
    },
    {
      "from": "Split Out each Attribute String",
      "to": "Check if Attribute exists"
    },
    {
      "from": "Split Out each Attribute String",
      "to": "Merge"
    },
    {
      "from": "Determine Similar we should save",
      "to": "Save all this juicy data"
    },
    {
      "from": "Generate Unique Hash for Similar",
      "to": "It Should exists"
    },
    {
      "from": "Determine Attributes we should save",
      "to": "Split Out similar"
    },
    {
      "from": "Determine Attributes we should save",
      "to": "Merge2"
    },
    {
      "from": "Change each Smiliar to the corresponding RecID",
      "to": "Determine Similar we should save"
    },
    {
      "from": "Change each Attribute to the corresponding RecID",
      "to": "Generate Unique Hash for Name"
    }
  ]
}