{
  "name": "Synchronize Excel or Google Sheets with Postgres (bi-directional)",
  "nodes": [
    {
      "id": "e6bc660d-99b9-4321-ad7b-73f4b73a80f9",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        -320
      ],
      "parameters": {
        "width": 976,
        "height": 752,
        "content": "## Synchronize Excel Sheet with Postgres Database"
      }
    },
    {
      "id": "9a97bb0b-9428-424f-952c-0d83dca0e94f",
      "name": "Sanitize Date",
      "type": "n8n-nodes-base.code",
      "position": [
        -96,
        16
      ]
    },
    {
      "id": "71ef2eee-cb60-48ad-9050-df5a27f1a568",
      "name": "Click Sync Excel -> DB",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -576,
        -176
      ]
    },
    {
      "id": "a3a85552-617f-4aa2-b29f-2d7196c7148c",
      "name": "Exec Sync Excel -> DB",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -576,
        16
      ]
    },
    {
      "id": "a17a319e-ef1e-4a2a-b5f4-302628b811c5",
      "name": "Schedule Sync Excel -> DB",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -576,
        208
      ]
    },
    {
      "id": "705234f6-2f3b-45fd-a072-09da5ea65ce1",
      "name": "Get Table",
      "type": "n8n-nodes-base.microsoftExcel",
      "position": [
        -256,
        16
      ]
    },
    {
      "id": "b674a99d-e5a1-45d4-9092-e9b66a7943f8",
      "name": "Upsert Table",
      "type": "n8n-nodes-base.postgres",
      "position": [
        80,
        16
      ]
    },
    {
      "id": "30ed085e-d0ba-4271-a92e-61dece670542",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1264,
        -320
      ],
      "parameters": {
        "width": 592,
        "height": 752,
        "content": "## Excel ↔ Database Synchronization\n\nThis workflow automates syncing between **Excel/Google Sheets** and a **Postgres DB**:  \n\n1. **Triggers** → Run manually, on schedule, or via another workflow.  \n2"
      }
    }
  ],
  "connections": {
    "Get Table": {
      "main": [
        [
          {
            "node": "Sanitize Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sanitize Date": {
      "main": [
        [
          {
            "node": "Upsert Table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Exec Sync Excel -> DB": {
      "main": [
        [
          {
            "node": "Get Table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Click Sync Excel -> DB": {
      "main": [
        [
          {
            "node": "Get Table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Sync Excel -> DB": {
      "main": [
        [
          {
            "node": "Get Table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}