{
  "name": "Sync Fizzy cards with Basecamp todos in real time",
  "nodes": [
    {
      "id": "95404f80-67d4-4cfd-b47c-049375fa16c2",
      "name": "Set Basecamp account ID",
      "type": "n8n-nodes-base.code",
      "position": [
        64,
        912
      ]
    },
    {
      "id": "a005d45d-2c21-4d83-9c3e-fb6ec2e8058a",
      "name": "Find todo and prepare update",
      "type": "n8n-nodes-base.code",
      "position": [
        2848,
        896
      ]
    },
    {
      "id": "8598d428-8223-49b6-95bd-4fbc93fe92ef",
      "name": "Receive Fizzy webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -160,
        912
      ]
    },
    {
      "id": "f4fdb48e-3aff-4ac6-bdfb-0396d47ffeaf",
      "name": "Fetch Basecamp projects",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        288,
        816
      ]
    },
    {
      "id": "6df604c8-d556-48ac-9f1a-1f8d2166c399",
      "name": "Fetch Basecamp people",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        288,
        1008
      ]
    },
    {
      "id": "d7a1fe7e-8937-411b-9cbf-b55cf4aa1b93",
      "name": "Combine projects and people",
      "type": "n8n-nodes-base.merge",
      "position": [
        512,
        912
      ]
    },
    {
      "id": "eedefdae-d447-4f4f-b0e9-4dd6889e704d",
      "name": "Match project and get todoset",
      "type": "n8n-nodes-base.code",
      "position": [
        880,
        912
      ]
    },
    {
      "id": "7f931279-850c-4168-a9fa-ef9594c9f376",
      "name": "Fetch project todolists",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1088,
        912
      ]
    },
    {
      "id": "7c0a17ba-5b36-4c8d-897a-1050d0a22fd6",
      "name": "Match todolist and assignees",
      "type": "n8n-nodes-base.code",
      "position": [
        1280,
        912
      ]
    },
    {
      "id": "c19a89c1-da76-4676-be36-327e80b5c639",
      "name": "Fetch active todos",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2576,
        1184
      ]
    },
    {
      "id": "5196689a-ec15-4e80-8299-4a02a9dd832b",
      "name": "Fetch completed todos",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2576,
        1328
      ]
    },
    {
      "id": "43594424-0b87-4df3-83e2-d93556158ccd",
      "name": "Combine all todos",
      "type": "n8n-nodes-base.merge",
      "position": [
        2848,
        1248
      ]
    },
    {
      "id": "2c3c4aff-dff1-4e21-a665-21c4dcaa511e",
      "name": "Create new todolist",
      "type": "n8n-nodes-basecamp.basecamp4",
      "position": [
        1472,
        1168
      ]
    },
    {
      "id": "25a7038f-8230-4490-92b7-0b4715e349ed",
      "name": "Check if todolist exists",
      "type": "n8n-nodes-base.if",
      "position": [
        1472,
        912
      ]
    },
    {
      "id": "795ff0a3-df67-4715-955a-6bbaf542b89d",
      "name": "Add new todolist ID",
      "type": "n8n-nodes-base.code",
      "position": [
        1680,
        1168
      ]
    },
    {
      "id": "8a8b7b46-1dc6-4890-8d19-ac2148038970",
      "name": "Create new todo",
      "type": "n8n-nodes-basecamp.basecamp4",
      "position": [
        2112,
        896
      ]
    },
    {
      "id": "0507e272-9632-4894-9c84-bc658b16f016",
      "name": "Check if assignment change",
      "type": "n8n-nodes-base.if",
      "position": [
        3264,
        896
      ]
    },
    {
      "id": "3c2632f9-66a0-4faf-8ecf-3d3116cf375e",
      "name": "Update todo assignees",
      "type": "n8n-nodes-basecamp.basecamp4",
      "position": [
        3488,
        800
      ]
    },
    {
      "id": "c8806e91-b8cc-4c56-8a55-e02a468451f0",
      "name": "Check if card closed",
      "type": "n8n-nodes-base.if",
      "position": [
        3488,
        992
      ]
    },
    {
      "id": "69001a54-92c8-40ae-966b-7d4e8e8d69ec",
      "name": "Mark todo as complete",
      "type": "n8n-nodes-basecamp.basecamp4",
      "position": [
        3712,
        896
      ]
    },
    {
      "id": "20166541-01ea-4862-9816-7707b89ce8e5",
      "name": "Mark todo as incomplete",
      "type": "n8n-nodes-basecamp.basecamp4",
      "position": [
        3936,
        1088
      ]
    },
    {
      "id": "5c87b77a-1c95-4af3-9286-1adc4cfb7816",
      "name": "Check if card reopened",
      "type": "n8n-nodes-base.if",
      "position": [
        3712,
        1088
      ]
    },
    {
      "id": "1b6b8631-160d-40e1-8d41-f4f623cbf688",
      "name": "Setup instructions",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        -80
      ],
      "parameters": {
        "width": 880,
        "height": 624,
        "content": "## Setup steps\n\n**1. Install Basecamp community node**\nInstall from: https://www.npmjs.com/package/n8n-nodes-basecamp\n\n**2. Configure Basecamp credentials**\nCreate integration: https://launchpad.37sig"
      }
    },
    {
      "id": "8cfb232e-0c3e-4434-a7d6-1325fcf3bc9b",
      "name": "Initial setup",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -224,
        656
      ],
      "parameters": {
        "width": 896,
        "height": 624,
        "content": "Receives webhook from Fizzy and fetches Basecamp data"
      }
    },
    {
      "id": "43c90a16-2901-4f80-9fcf-8d58b9f22aa1",
      "name": "Project matching",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        816,
        656
      ],
      "parameters": {
        "width": 1072,
        "height": 800,
        "content": "Matches Fizzy Data to Basecamp Data (Projects, Todoset, Todolist)"
      }
    },
    {
      "id": "17f46172-7d8a-4025-bec1-c8a1ae2f86d8",
      "name": "Create path",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2016,
        656
      ],
      "parameters": {
        "width": 336,
        "height": 800,
        "content": "Creates new todo when fizzy card status is equal to published (New)"
      }
    },
    {
      "id": "150593f5-f87e-4b15-8ba1-50edc2990fd2",
      "name": "Update path",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2480,
        656
      ],
      "parameters": {
        "width": 592,
        "height": 960,
        "content": "Updates existing todo when card changes"
      }
    },
    {
      "id": "a8b2a1c5-1e62-45a5-84bf-887365f3dff7",
      "name": "Status changes",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3168,
        656
      ],
      "parameters": {
        "width": 992,
        "height": 816,
        "content": "Handles assignment updates and completion status"
      }
    },
    {
      "id": "b98f4005-336a-4e44-be28-840e6952ccf0",
      "name": "Check if New Card",
      "type": "n8n-nodes-base.if",
      "position": [
        2128,
        1168
      ]
    }
  ],
  "connections": {
    "Check if New Card": {
      "main": [
        [
          {
            "node": "Create new todo",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Fetch active todos",
            "type": "main",
            "index": 0
          },
          {
            "node": "Fetch completed todos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine all todos": {
      "main": [
        [
          {
            "node": "Find todo and prepare update",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch active todos": {
      "main": [
        [
          {
            "node": "Combine all todos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add new todolist ID": {
      "main": [
        [
          {
            "node": "Check if New Card",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create new todolist": {
      "main": [
        [
          {
            "node": "Add new todolist ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if card closed": {
      "main": [
        [
          {
            "node": "Mark todo as complete",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Check if card reopened",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Basecamp people": {
      "main": [
        [
          {
            "node": "Combine projects and people",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Fetch completed todos": {
      "main": [
        [
          {
            "node": "Combine all todos",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Receive Fizzy webhook": {
      "main": [
        [
          {
            "node": "Set Basecamp account ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if card reopened": {
      "main": [
        [
          {
            "node": "Mark todo as incomplete",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Basecamp projects": {
      "main": [
        [
          {
            "node": "Combine projects and people",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch project todolists": {
      "main": [
        [
          {
            "node": "Match todolist and assignees",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Basecamp account ID": {
      "main": [
        [
          {
            "node": "Fetch Basecamp projects",
            "type": "main",
            "index": 0
          },
          {
            "node": "Fetch Basecamp people",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if todolist exists": {
      "main": [
        [
          {
            "node": "Check if New Card",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create new todolist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if assignment change": {
      "main": [
        [
          {
            "node": "Update todo assignees",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Check if card closed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine projects and people": {
      "main": [
        [
          {
            "node": "Match project and get todoset",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find todo and prepare update": {
      "main": [
        [
          {
            "node": "Check if assignment change",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Match todolist and assignees": {
      "main": [
        [
          {
            "node": "Check if todolist exists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Match project and get todoset": {
      "main": [
        [
          {
            "node": "Fetch project todolists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}