Skip to main content

Sync your HRIS employee directory with Microsoft Teams, Coda, and Slack

Workflow preview

Workflow preview
100%
Sync your HRIS employee directory with Microsoft Teams, Coda, and Slack preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Employee Directory Sync – Microsoft Teams & Coda ️ COMMUNITY TEMPLATE DISCLAIMER: This is a community contributed template that uses ScrapeGraphAI (a community node). Please ensure you have the Sc...

Best for

  • HR automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.scheduletrigger, n8n-nodes-base.httprequest, n8n-nodes-base.if, n8n-nodes-base.microsoftteams, n8n-nodes-base.code, n8n-nodes-base.splitinbatches, n8n-nodes-base.set, n8n-nodes-base.coda

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by vinci-king-01.

Original n8n.io source

1.1 Workflow description

Title
Sync your HRIS employee directory with Microsoft Teams, Coda, and Slack
Workflow name
Sync your HRIS employee directory with Microsoft Teams, Coda, and Slack

Employee Directory Sync – Microsoft Teams & Coda

⚠️ COMMUNITY TEMPLATE DISCLAIMER: This is a community-contributed template that uses ScrapeGraphAI (a community node). Please ensure you have the ScrapeGraphAI community node installed in your n8n instance before using this template.

This workflow keeps your employee directory perfectly synchronized across your HRIS (or any REST-compatible HR database), Microsoft Teams, Coda docs, and Slack channels. It automatically polls the HR system on a schedule, detects additions or updates, and propagates those changes to downstream tools so everyone always has the latest employee information.

Pre-conditions/Requirements

Prerequisites

  • An active n8n instance (self-hosted or n8n cloud)
  • ScrapeGraphAI community node installed
  • A reachable HRIS API (BambooHR, Workday, Personio, or any custom REST endpoint)
  • Existing Microsoft Teams workspace and a team/channel for announcements
  • A Coda account with an employee directory table
  • A Slack workspace and channel where directory updates will be posted

Required Credentials

  • Microsoft Teams OAuth2 – To post adaptive cards or messages
  • Coda API Token – To insert/update rows in your Coda doc
  • Slack OAuth2 – To push notifications into a Slack channel
  • HTTP Basic / Bearer Token – For your HRIS REST endpoint
  • ScrapeGraphAI API Key – (Only required if you scrape public profile data)

HRIS Field Mapping

HRIS Field Coda Column Teams/Slack Field
firstName First Name First Name
lastName Last Name Last Name
email Email Email
title Job Title Job Title
department Department Department

(Adjust the mapping in the Set and Code nodes as needed.)

How it works

This workflow keeps your employee directory perfectly synchronized across your HRIS (or any REST-compatible HR database), Microsoft Teams, Coda docs, and Slack channels. It automatically polls the HR system on a schedule, detects additions or updates, and propagates those changes to downstream tools so everyone always has the latest employee information.

Key Steps:

  • Schedule Trigger: Fires daily (or at your chosen interval) to start the sync routine.
  • HTTP Request: Fetches the full list of employees from your HRIS API.
  • Code (Delta Detector): Compares fetched data with a cached snapshot to identify new hires, departures, or updates.
  • IF Node: Branches based on whether changes were detected.
  • Split In Batches: Processes employees in manageable sets to respect API rate limits.
  • Set Node: Maps HRIS fields to Coda columns and Teams/Slack message fields.
  • Coda Node: Upserts rows in the employee directory table.
  • Microsoft Teams Node: Posts an adaptive card summarizing changes to a selected channel.
  • Slack Node: Sends a formatted message with the same update.
  • Sticky Note: Provides inline documentation within the workflow for maintainers.

Set up steps

Setup Time: 10-15 minutes

  1. Import the workflow into your n8n instance.
  2. Open Credentials tab and create:
    • Microsoft Teams OAuth2 credential.
    • Coda API credential.
    • Slack OAuth2 credential.
    • HRIS HTTP credential (Basic or Bearer).
  3. Configure the HRIS HTTP Request node
    • Replace the placeholder URL with your HRIS endpoint (e.g., https://api.yourhr.com/v1/employees).
    • Add query parameters or headers as required by your HRIS.
  4. Map Coda Doc & Table IDs in the Coda node.
  5. Select Teams & Slack channels in their respective nodes.
  6. Adjust the Schedule Trigger to your desired frequency.
  7. Optional: Edit the Code node to tweak field mapping or add custom delta-comparison logic.
  8. Execute the workflow manually once to verify proper end-to-end operation.
  9. Activate the workflow.

Node Descriptions

Core Workflow Nodes:

  • Schedule Trigger – Initiates the sync routine at set intervals.
  • HTTP Request (Get Employees) – Pulls the latest employee list from the HRIS.
  • Code (Delta Detector) – Stores the previous run’s data in workflow static data and identifies changes.
  • IF (Has Changes?) – Skips downstream steps when no changes were detected, saving resources.
  • Split In Batches – Iterates through employees in chunks (default 50) to avoid API throttling.
  • Set (Field Mapper) – Renames and restructures data for Coda, Teams, and Slack.
  • Coda (Upsert Rows) – Inserts new rows or updates existing ones based on email match.
  • Microsoft Teams (Post Message) – Sends a rich adaptive card with the update summary.
  • Slack (Post Message) – Delivers a concise change log to a Slack channel.
  • Sticky Note – Embedded documentation for quick reference.

Data Flow:

  1. Schedule TriggerHTTP RequestCode (Delta Detector)
  2. CodeIF (Has Changes?)
    • If NoEnd
    • If YesSplit In BatchesSetCodaTeamsSlack

Customization Examples

Change Sync Frequency

// Inside Schedule Trigger
{
  "mode": "everyDay",
  "hour": 6,
  "minute": 0
}

Extend Field Mapping

// Inside Set node
items[0].json.phone = item.phoneNumber ?? '';
items[0].json.location = item.officeLocation ?? '';
return items;

Data Output Format

The workflow outputs structured JSON data:

{
  "employee": {
    "id": "123",
    "firstName": "Jane",
    "lastName": "Doe",
    "email": "[email protected]",
    "title": "Senior Engineer",
    "department": "R&D",
    "status": "New Hire",
    "syncedAt": "2024-05-08T10:15:23.000Z"
  },
  "destination": {
    "codaRowId": "row_abc123",
    "teamsMessageId": "msg_987654",
    "slackTs": "1715158523.000200"
  }
}

Troubleshooting

Common Issues

  1. HTTP 401 from HRIS API – Verify token validity and that the credential is attached to the HTTP Request node.
  2. Coda duplicates rows – Ensure the key column in Coda is set to “Email” and the Upsert option is enabled.

Performance Tips

  • Cache HRIS responses in static data to minimize API calls.
  • Increase the Split In Batches size only if your API rate limits allow.

Pro Tips:

  • Use n8n’s built-in Version Control to track mapping changes over time.
  • Add a second IF node to differentiate between “new hires” and “updates” for tailored announcements.
  • Enable Slack’s “threaded replies” to keep your #hr-updates channel tidy.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Daily Employee Sync

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.1

Block 2 - Fetch HR Employees

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 3 - Check API Response

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 4 - Teams Alert - API Failure

Type / Role
n8n-nodes-base.microsoftTeams - microsoftTeams
Config choices
Version 2

Block 5 - Expand Employee List

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 6 - Split Employees

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 7 - Map Employee Fields

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 8 - Is Active Employee?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 9 - Prepare Coda Row

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 10 - Create/Update Employee in Coda

Type / Role
n8n-nodes-base.coda - coda
Config choices
Version 1

Block 11 - Set Teams Message (Active)

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 12 - Teams Notify - Employee Synced

Type / Role
n8n-nodes-base.microsoftTeams - microsoftTeams
Config choices
Version 2

Block 13 - Slack Notify - New Employee

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.1

Block 14 - Set Teams Message (Inactive)

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 15 - Teams Notify - Employee Inactive

Type / Role
n8n-nodes-base.microsoftTeams - microsoftTeams
Config choices
Version 2

Block 16 - Employee Directory Sync – Overview

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 17 - Section – Retrieval

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 18 - Section – Processing

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 19 - Section – Storage & Notify

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Sync your HRIS employee directory with Microsoft Teams, Coda, and Slack
Complexity advanced
Nodes 19
Categories HR
Author vinci-king-01
Published 08 Jan 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/12586/12586.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Sync your HRIS employee directory with Microsoft Teams, Coda, and Slack do?

Employee Directory Sync – Microsoft Teams & Coda ️ COMMUNITY TEMPLATE DISCLAIMER: This is a community contributed template that uses ScrapeGraphAI (a community node). Please ensure you have the Sc...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your HR use case.