{
  "name": "Extract contacts from business cards to Google Sheets with GPT4o",
  "nodes": [
    {
      "id": "20d8f543-4115-4190-b5f9-ff9ff374a7e9",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2864,
        1216
      ],
      "parameters": {
        "width": 1312,
        "height": 1568,
        "content": "# 📄 Auto Extract Contacts from Business Cards to Sheet With GPT4o\n\nThis smart workflow extracts names, phone numbers, emails, and more from uploaded name card photos using AI, then logs them neatly in"
      }
    },
    {
      "id": "72a04c4f-59f9-4556-98fc-1c9116be6cc1",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1536,
        1216
      ],
      "parameters": {
        "width": 540,
        "height": 932,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/namecard.jpg \"Optional title text\")\n"
      }
    },
    {
      "id": "f036f0ca-7b80-4573-bdc1-266eb97a8bd5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        1616
      ],
      "parameters": {
        "width": 636,
        "height": 496,
        "content": "## 1.1. Smart agent extract contact from name card picture \n- Sales person upload picture (png/jpg) with multiple name cards (no limit, make sure it clear).\n- Smart agent with OCR capability scan the "
      }
    },
    {
      "id": "1dd2dc2f-488d-4dce-8c03-e2d508e07ffd",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        1648
      ],
      "parameters": {
        "width": 556,
        "height": 304,
        "content": "## 3. Add record to google sheet\n- Client contact has been extracted from name card pictures and save to google drive sheet"
      }
    },
    {
      "id": "513be31a-68e9-418c-a328-9ca65cf91df2",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        1616
      ],
      "parameters": {
        "width": 1020,
        "height": 356,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/Screenshot+2025-08-02+at+1.28.06%E2%80%AFPM.png \"Optional title text\")"
      }
    },
    {
      "id": "156a2e1e-81ab-4650-b6d1-5a289fd4e8dd",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -464,
        1600
      ]
    },
    {
      "id": "da4c7125-eb33-4770-a6c0-a797a20117e5",
      "name": "Add contact to tracking sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1088,
        1760
      ]
    },
    {
      "id": "d489224d-5b58-4e43-aa70-11a2d8f1ec76",
      "name": "Transform Output",
      "type": "n8n-nodes-base.code",
      "position": [
        480,
        1760
      ]
    },
    {
      "id": "abd70432-b13a-4e20-8ef2-eaa70f59db1d",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        80,
        2064
      ]
    },
    {
      "id": "4cf62a29-c529-401d-a675-ccda319620d9",
      "name": "GPT4o",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -64,
        2064
      ]
    },
    {
      "id": "2470ecbd-18a6-4c82-864c-781410922d75",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -992,
        1424
      ],
      "parameters": {
        "width": 540,
        "height": 468,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/Screenshot+2025-08-02+at+1.25.32%E2%80%AFPM.png \"Optional title text\")\n"
      }
    },
    {
      "id": "8eaed946-7f53-4f93-82c1-7a709639e62c",
      "name": "Neural assistant for contact extraction",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -96,
        1808
      ]
    },
    {
      "id": "ab5f4a90-be5f-478e-b471-de0f24cae931",
      "name": "Filter bad data",
      "type": "n8n-nodes-base.filter",
      "position": [
        704,
        1760
      ]
    },
    {
      "id": "e163856a-b1ee-4d38-af8d-b272b772cddd",
      "name": "Upload file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -16,
        1424
      ]
    },
    {
      "id": "d3624f8d-148b-433a-9b84-b613a080f016",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        1376
      ],
      "parameters": {
        "width": 636,
        "height": 208,
        "content": "## 1.2. Upload to Google Drive folder for later process"
      }
    },
    {
      "id": "71d1d6e2-e107-4b55-8321-d7aac1930adb",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        1712
      ],
      "parameters": {
        "width": 492,
        "height": 208,
        "content": "## 2. Transform & clean data"
      }
    }
  ],
  "connections": {
    "GPT4o": {
      "ai_languageModel": [
        [
          {
            "node": "Neural assistant for contact extraction",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Filter bad data": {
      "main": [
        [
          {
            "node": "Add contact to tracking sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transform Output": {
      "main": [
        [
          {
            "node": "Filter bad data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Neural assistant for contact extraction",
            "type": "main",
            "index": 0
          },
          {
            "node": "Upload file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Neural assistant for contact extraction",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Neural assistant for contact extraction": {
      "main": [
        [
          {
            "node": "Transform Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}