Notify Redmine project members in Slack about teammatesโ€™ approved Odoo leave โ€” n8n ์›Œํฌํ”Œ๋กœ

๋†’์Œ ๋ณต์žก๋„โฐ ์˜ˆ์•ฝ45๊ฐœ์˜ ๋…ธ๋“œ๐Ÿท๏ธ Project Management์ž‘์„ฑ์ž: BHSoft

๊ฐœ์š”

๐Ÿ“ŒWho is this for? This workflow is designed for engineering teams, project managers, and IT operations who need consistent visibility into team availability across multiple projects. Itโ€™s perfect for organizations that use Odoo for leave management and Redmine for project collaboration, and want to ensure that everyone involved gets timely, automated Slack notifications whenever a team member will be absent the next day.

๐Ÿ“ŒThe problem When team members go dark, everything grinds to a halt. You'r

์‚ฌ์šฉ๋œ ๋…ธ๋“œ

HTTP RequestSlackCode

์›Œํฌํ”Œ๋กœ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

Subflow: Get membership list of user in Redmi
- It starts when the subflow is called from the main fl
- Loop over projects to extract project members and rem
Note: Subfl
Subflow: Push message to member
- There are 3 different notifications: Time Off, Remote
Note: Need to add trigger node "When Executed by Anothe
Querying data in Odoo
- Check if there are any records of the member's leave
- If there are no records, end the flow.
- If so, proceed to the next step for filtering.
Schedule daily runs at 5:15 PM.
- Get some information about datetime, the list of user
- Add necessary variables.
Loop over item
- Read the detailed information of the records and extr
- Then get the information for that employee and their
Get user info in Redmine
- Get the information for that member on Redmine
- If there's any information, then find out which proje
- If not, return isAccountRedmi
Loop over members to check if a member has a
- If there's any information, call 'Subflow Get members
Loop over members to check if a member has a
- If you have an account, send a notification about the
Notify project members when a teammate has an
๐Ÿ“ŒWho is this for?
This workflow is designed for engineering teams, projec
S
Step2: Set Variables
โšก
S
Step 1: Schedule the triโ€ฆ
Step3: Get datetime
Step4: Get all user in Rโ€ฆ
Step5: Get a list of cloโ€ฆ
Step7: Get the list of mโ€ฆ
E
End
E
End1
โšก
S
Step1: When Executed by โ€ฆ
S
Step3: Loop Over Items
Step4: Get membership liโ€ฆ
Step2: Return redmine liโ€ฆ
Step5: Get redmine projeโ€ฆ
Step6: Remove duplicate id
N
No Operation, do nothing
S
Step2: Loop Over Items
S
Step3: Wait 1s
Step6: Get many users
S
Step8: Check if there isโ€ฆ
Step9: Handling and get โ€ฆ
S
Step10: Loop Over Items
Step11: Get leave recordโ€ฆ
Step12: Get name record
Step13: Get employee infโ€ฆ
Step14: Get work_email
Step15: Get information โ€ฆ
Step16: Get work_email oโ€ฆ
Step17: Get user info inโ€ฆ
S
Step18: Check if there โ€ฆ
Step19.1: Get membershipโ€ฆ
Step19.2: Return isAccouโ€ฆ
Step20: Get project IDs โ€ฆ
S
Step21: Merge data
S
Step22: Loop Over Items
S
Step 23: If redmine_listโ€ฆ
S
Step 24: Call subflow: "โ€ฆ
Step25: Get email Redminโ€ฆ
S
Step26: Loop Over Items
S
Step 27: If redmine_listโ€ฆ
Step28.1: Prepare informโ€ฆ
Step28.2: Prepare informโ€ฆ
S
Step29: Call subflow: 'Pโ€ฆ
S
Step4: Switch
Step5.1: Send a message โ€ฆ
Step5.2: Send a message โ€ฆ
45 nodes55 edges

์ž‘๋™ ์›๋ฆฌ

  1. 1

    ํŠธ๋ฆฌ๊ฑฐ

    ์›Œํฌํ”Œ๋กœ๋Š” ์˜ˆ์•ฝ ํŠธ๋ฆฌ๊ฑฐ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค, ์ •ํ•ด์ง„ ์ผ์ •์— ๋”ฐ๋ผ ์‹คํ–‰.

  2. 2

    ์ฒ˜๋ฆฌ

    ๋ฐ์ดํ„ฐ๊ฐ€ 45๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ํ†ตํ•ด ํ๋ฆ…๋‹ˆ๋‹ค, connecting code, executeworkflow, executeworkflowtrigger.

  3. 3

    ์ถœ๋ ฅ

    ์›Œํฌํ”Œ๋กœ๊ฐ€ ์ž๋™ํ™”๋ฅผ ์™„๋ฃŒํ•˜๊ณ  ๊ตฌ์„ฑ๋œ ๋Œ€์ƒ์— ๊ฒฐ๊ณผ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๋…ธ๋“œ ์„ธ๋ถ€ ์ •๋ณด (45)

HT

HTTP Request

httpRequest

#1
SL

Slack

slack

#2
CO

Code

code

#3

์ด ์›Œํฌํ”Œ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•

  1. 1์˜ค๋ฅธ์ชฝ์˜ JSON ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์›Œํฌํ”Œ๋กœ ํŒŒ์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  2. 2n8n ์ธ์Šคํ„ด์Šค๋ฅผ ์—ด๊ณ  ์›Œํฌํ”Œ๋กœ โ†’ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ โ†’ ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  3. 3๋‹ค์šด๋กœ๋“œ๋œ notify-redmine-project-members-in-slack-about-teammates-approved-odoo-leave ํŒŒ์ผ์„ ์„ ํƒํ•˜๊ณ  ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  4. 4๊ฐ ์„œ๋น„์Šค ๋…ธ๋“œ์— ๋Œ€ํ•œ ์ž๊ฒฉ ์ฆ๋ช…๏ผˆAPI ํ‚ค, OAuth ๋“ฑ๏ผ‰์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  5. 5์›Œํฌํ”Œ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•œ ํ›„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋˜๋Š” n8n โ†’ JSON์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ์— ์ง์ ‘ ๋ถ™์—ฌ๋„ฃ๊ธฐ:

{ "name": "Notify Redmine project members in Slack about teammatesโ€™ approved Odoo leave", "nodes": [...], ...}

ํ†ตํ•ฉ

codeexecuteworkflowexecuteworkflowtriggerhttprequestifmergescheduletriggersetslacksplitinbatchesswitchwait

์ด ์›Œํฌํ”Œ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

ํ•œ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฐ ๊ฐ€์ ธ์˜ค๊ธฐ

JSON ๋‹ค์šด๋กœ๋“œn8n.io์—์„œ ๋ณด๊ธฐ
๋…ธ๋“œ45
๋ณต์žก๋„high
ํŠธ๋ฆฌ๊ฑฐscheduled
์นดํ…Œ๊ณ ๋ฆฌProject Management

์ œ์ž‘์ž

BHSoft

BHSoft

@bhsoft

ํƒœ๊ทธ

codeexecuteworkflowexecuteworkflowtriggerhttprequestifmergescheduletriggersetslacksplitinbatches
โšก

n8n์„ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜์‹œ๋‚˜์š”?

n8n์€ ๋ฌด๋ฃŒ ์˜คํ”ˆ์†Œ์Šค ์›Œํฌํ”Œ๋กœ ์ž๋™ํ™” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ž์ฒด ํ˜ธ์ŠคํŒ…ํ•˜๊ฑฐ๋‚˜ ํด๋ผ์šฐ๋“œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

n8n ๋ฌด๋ฃŒ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ โ†’