{
  "name": "Sync your HRIS employee directory with Microsoft Teams, Coda, and Slack",
  "nodes": [
    {
      "id": "31a3c9f2-4b53-4972-b36e-a50ea2e040da",
      "name": "Daily Employee Sync",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        512
      ]
    },
    {
      "id": "b6eeee08-5e33-4dda-80d7-c0452c1296c5",
      "name": "Fetch HR Employees",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        160,
        528
      ]
    },
    {
      "id": "bbdbc85c-c287-4284-bf51-4981cb32f256",
      "name": "Check API Response",
      "type": "n8n-nodes-base.if",
      "position": [
        480,
        448
      ]
    },
    {
      "id": "d85ed4ec-03dc-4e03-908d-5e8df5dd8a1b",
      "name": "Teams Alert - API Failure",
      "type": "n8n-nodes-base.microsoftTeams",
      "position": [
        1264,
        400
      ]
    },
    {
      "id": "828d24e3-1f79-4dc7-9788-1636f1498eab",
      "name": "Expand Employee List",
      "type": "n8n-nodes-base.code",
      "position": [
        496,
        608
      ]
    },
    {
      "id": "c3845b58-3954-4bb8-8793-935239a9c5bf",
      "name": "Split Employees",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        688,
        576
      ]
    },
    {
      "id": "1133e025-855e-4eb4-a690-cc9c69be4464",
      "name": "Map Employee Fields",
      "type": "n8n-nodes-base.code",
      "position": [
        864,
        560
      ]
    },
    {
      "id": "b33c61b5-8e19-4b53-ac6d-25118ad46b11",
      "name": "Is Active Employee?",
      "type": "n8n-nodes-base.if",
      "position": [
        1040,
        560
      ]
    },
    {
      "id": "eca6ebcb-12de-4796-b30a-6333f5dcdaab",
      "name": "Prepare Coda Row",
      "type": "n8n-nodes-base.set",
      "position": [
        1264,
        560
      ]
    },
    {
      "id": "0bdb7a7e-3656-4be3-90ed-e516da3f83c1",
      "name": "Create/Update Employee in Coda",
      "type": "n8n-nodes-base.coda",
      "position": [
        1472,
        560
      ]
    },
    {
      "id": "7cc835df-542e-4175-a50e-97bd9c78cdda",
      "name": "Set Teams Message (Active)",
      "type": "n8n-nodes-base.set",
      "position": [
        1696,
        560
      ]
    },
    {
      "id": "f66ea9fc-408d-44e6-ac21-c1ef450cfc80",
      "name": "Teams Notify - Employee Synced",
      "type": "n8n-nodes-base.microsoftTeams",
      "position": [
        1904,
        560
      ]
    },
    {
      "id": "003318b7-158f-4701-bfbf-edddf63c7a1d",
      "name": "Slack Notify - New Employee",
      "type": "n8n-nodes-base.slack",
      "position": [
        2096,
        560
      ]
    },
    {
      "id": "0d2dbdcd-fe88-420e-90ae-53e9e279a510",
      "name": "Set Teams Message (Inactive)",
      "type": "n8n-nodes-base.set",
      "position": [
        1264,
        752
      ]
    },
    {
      "id": "ed7575e1-ab55-49ed-b42b-8539ccc1ff5b",
      "name": "Teams Notify - Employee Inactive",
      "type": "n8n-nodes-base.microsoftTeams",
      "position": [
        1472,
        752
      ]
    },
    {
      "id": "1ff67d58-5022-439b-917f-2cb28cf84beb",
      "name": "Employee Directory Sync – Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        160
      ],
      "parameters": {
        "width": 550,
        "height": 674,
        "content": "## How it works\nThis workflow runs automatically every 24 hours to synchronize employee information between your HR system and your internal directory in Coda. First, it pulls the complete employee li"
      }
    },
    {
      "id": "42c3e44d-7f92-454d-9ad8-7960db594d13",
      "name": "Section – Retrieval",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        208
      ],
      "parameters": {
        "width": 450,
        "height": 590,
        "content": "## Data Retrieval & Validation\nThis section contains the trigger, data-fetch, and validation logic. The *Daily Employee Sync* schedule node fires every 24 hours (adjustable). It immediately calls the "
      }
    },
    {
      "id": "db883c40-abef-45cb-b3a2-9af92f398318",
      "name": "Section – Processing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        208
      ],
      "parameters": {
        "width": 802,
        "height": 590,
        "content": "## Employee Processing\nAfter the raw list arrives, *Expand Employee List* converts it into one-item-per-employee format. The *Split Employees* node ensures batched processing to respect rate limits on"
      }
    },
    {
      "id": "60c9e818-6e51-46f2-a17a-ed730a234cca",
      "name": "Section – Storage & Notify",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1168,
        208
      ],
      "parameters": {
        "width": 1074,
        "height": 702,
        "content": "## Storage & Notifications\nActive employee records flow into *Prepare Coda Row*, translating mapped fields into Coda-ready key/value pairs. The *Create/Update Employee in Coda* node writes each employ"
      }
    }
  ],
  "connections": {
    "Split Employees": {
      "main": [
        [
          {
            "node": "Map Employee Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Coda Row": {
      "main": [
        [
          {
            "node": "Create/Update Employee in Coda",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check API Response": {
      "main": [
        [
          {
            "node": "Expand Employee List",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Teams Alert - API Failure",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch HR Employees": {
      "main": [
        [
          {
            "node": "Check API Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Employee Sync": {
      "main": [
        [
          {
            "node": "Fetch HR Employees",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Active Employee?": {
      "main": [
        [
          {
            "node": "Prepare Coda Row",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set Teams Message (Inactive)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map Employee Fields": {
      "main": [
        [
          {
            "node": "Is Active Employee?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Expand Employee List": {
      "main": [
        [
          {
            "node": "Split Employees",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Teams Message (Active)": {
      "main": [
        [
          {
            "node": "Teams Notify - Employee Synced",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Teams Message (Inactive)": {
      "main": [
        [
          {
            "node": "Teams Notify - Employee Inactive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create/Update Employee in Coda": {
      "main": [
        [
          {
            "node": "Set Teams Message (Active)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Teams Notify - Employee Synced": {
      "main": [
        [
          {
            "node": "Slack Notify - New Employee",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}