Back to Integrations
integrationCoda node
integrationSlack node

Coda and Slack integration

Save yourself the work of writing custom integrations for Coda and Slack and use n8n instead. Build adaptable and scalable Productivity, Communication, and HITL workflows that work with your technology stack. All within a building experience you will love.

How to connect Coda and Slack

  • Step 1: Create a new workflow
  • Step 2: Add and configure nodes
  • Step 3: Connect
  • Step 4: Customize and extend your integration
  • Step 5: Test and activate your workflow

Step 1: Create a new workflow and add the first step

In n8n, click the "Add workflow" button in the Workflows tab to create a new workflow. Add the starting point – a trigger on when your workflow should run: an app event, a schedule, a webhook call, another workflow, an AI chat, or a manual trigger. Sometimes, the HTTP Request node might already serve as your starting point.

Coda and Slack integration: Create a new workflow and add the first step

Step 2: Add and configure Coda and Slack nodes

You can find Coda and Slack in the nodes panel. Drag them onto your workflow canvas, selecting their actions. Click each node, choose a credential, and authenticate to grant n8n access. Configure Coda and Slack nodes one by one: input data on the left, parameters in the middle, and output data on the right.

Coda and Slack integration: Add and configure Coda and Slack nodes

Step 3: Connect Coda and Slack

A connection establishes a link between Coda and Slack (or vice versa) to route data through the workflow. Data flows from the output of one node to the input of another. You can have single or multiple connections for each node.

Coda and Slack integration: Connect Coda and Slack

Step 4: Customize and extend your Coda and Slack integration

Use n8n's core nodes such as If, Split Out, Merge, and others to transform and manipulate data. Write custom JavaScript or Python in the Code node and run it as a step in your workflow. Connect Coda and Slack with any of n8n’s 1000+ integrations, and incorporate advanced AI logic into your workflows.

Coda and Slack integration: Customize and extend your Coda and Slack integration

Step 5: Test and activate your Coda and Slack workflow

Save and run the workflow to see if everything works as expected. Based on your configuration, data should flow from Coda to Slack or vice versa. Easily debug your workflow: you can check past executions to isolate and fix the mistake. Once you've tested everything, make sure to save your workflow and activate it.

Coda and Slack integration: Test and activate your Coda and Slack workflow

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

Import the workflow into your n8n instance.
Open Credentials tab and create:
Microsoft Teams OAuth2 credential.
Coda API credential.
Slack OAuth2 credential.
HRIS HTTP credential (Basic or Bearer).
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.
Map Coda Doc & Table IDs in the Coda node.
Select Teams & Slack channels in their respective nodes.
Adjust the Schedule Trigger to your desired frequency.
Optional: Edit the Code node to tweak field mapping or add custom delta-comparison logic.
Execute the workflow manually once to verify proper end-to-end operation.
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:
Schedule Trigger → HTTP Request → Code (Delta Detector)
Code → IF (Has Changes?)
If No → End
If Yes → Split In Batches → Set → Coda → Teams → Slack

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
HTTP 401 from HRIS API – Verify token validity and that the credential is attached to the HTTP Request node.
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.

Nodes used in this workflow

Popular Coda and Slack workflows

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 Import the workflow into your n8n instance. Open Credentials tab and create: Microsoft Teams OAuth2 credential. Coda API credential. Slack OAuth2 credential. HRIS HTTP credential (Basic or Bearer). 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. Map Coda Doc & Table IDs in the Coda node. Select Teams & Slack channels in their respective nodes. Adjust the Schedule Trigger to your desired frequency. Optional: Edit the Code node to tweak field mapping or add custom delta-comparison logic. Execute the workflow manually once to verify proper end-to-end operation. 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: Schedule Trigger → HTTP Request → Code (Delta Detector) Code → IF (Has Changes?) If No → End If Yes → Split In Batches → Set → Coda → Teams → Slack 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 HTTP 401 from HRIS API – Verify token validity and that the credential is attached to the HTTP Request node. 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.

Build your own Coda and Slack integration

Create custom Coda and Slack workflows by choosing triggers and actions. Nodes come with global operations and settings, as well as app-specific parameters that can be configured. You can also use the HTTP Request node to query data from any app or service with a REST API.

Coda supported actions

Get
Get a control
Get Many
Get many controls
Get
Get a formula
Get Many
Get many formulas
Create Row
Create/Insert a row
Delete Row
Delete one or multiple rows
Get All Columns
Get all columns in a table
Get All Rows
Get all rows in a table
Get Column
Get a column
Get Row
Get a row
Push Button
Pushes a button
Delete Row
Delete view row
Get
Get a view
Get Columns
Get all views columns
Get Many
Get many views
Get Rows
Get all views rows
Push Button
Push view button
Update Row

Slack supported actions

Archive
Archives a conversation
Close
Closes a direct message or multi-person direct message
Create
Initiates a public or private channel-based conversation
Get
Get information about a channel
Get Many
Get many channels in a Slack team
History
Get a conversation's history of messages and events
Invite
Invite a user to a channel
Join
Joins an existing conversation
Kick
Removes a user from a channel
Leave
Leaves a conversation
Member
List members of a conversation
Open
Opens or resumes a direct message or multi-person direct message
Rename
Renames a conversation
Replies
Get a thread of messages posted to a channel
Set Purpose
Sets the purpose for a conversation
Set Topic
Sets the topic for a conversation
Unarchive
Unarchives a conversation
Get
Get Many
Get & filters team files
Upload
Create or upload an existing file
Delete
Get Permalink
Search
Send
Send and Wait for Response
Update
Add
Adds a reaction to a message
Get
Get the reactions of a message
Remove
Remove a reaction of a message
Add
Add a star to an item
Delete
Delete a star from an item
Get Many
Get many stars of autenticated user
Get
Get information about a user
Get Many
Get a list of many users
Get User's Profile
Get a user's profile
Get User's Status
Get online status of a user
Update User's Profile
Update a user's profile
Add Users
Create
Disable
Enable
Get Many
Get Users
Update

FAQs

  • Can Coda connect with Slack?

  • Can I use Coda’s API with n8n?

  • Can I use Slack’s API with n8n?

  • Is n8n secure for integrating Coda and Slack?

  • How to get started with Coda and Slack integration in n8n.io?

Need help setting up your Coda and Slack integration?

Discover our latest community's recommendations and join the discussions about Coda and Slack integration.
Nicolas N
Muhammed Iqbal P B
Nicolas N

Looking to integrate Coda and Slack in your company?

Over 3000 companies switch to n8n every single week

Why use n8n to integrate Coda with Slack

Build complex workflows, really fast

Build complex workflows, really fast

Handle branching, merging and iteration easily.
Pause your workflow to wait for external events.

Code when you need it, UI when you don't

Simple debugging

Your data is displayed alongside your settings, making edge cases easy to track down.

Use templates to get started fast

Use 1000+ workflow templates available from our core team and our community.

Reuse your work

Copy and paste, easily import and export workflows.

Implement complex processes faster with n8n

red iconyellow iconred iconyellow icon