```JavaScript
// Slack 응답에서 blocks 추출
const slackResponse = $input.first().json;
let blocks;
if (Array.isArray(slackResponse)) {
blocks = slackResponse[0]?.message?.blocks;
} else if (slackResponse.message?.blocks) {
blocks = slackResponse.message.blocks;
} else if (slackResponse.blocks) {
blocks = slackResponse.blocks;
}
if (!blocks || !Array.isArray(blocks)) {
return {
json: {
chatResponse: slackResponse.text || slackResponse.message?.text || '데이터를 처리할 수 없습니다.'
}
};
}
// Slack Block Kit을 텍스트로 변환
let text = '';
blocks.forEach(block => {
// "Automated with this n8n workflow" 링크가 포함된 section은 스킵
if (block.type === 'section' &&
block.text?.text?.includes('Automated with this')) {
return; // 이 블록은 건너뛰기
}
switch(block.type) {
case 'header':
const headerText = block.text?.text || '';
text += `\n# ${headerText.replace(/:[a-z_]+:/g, '').trim()}\n\n`;
break;
case 'section':
const sectionText = block.text?.text || '';
const converted = sectionText
.replace(/\*([^*]+)\*/g, '**$1**')
.replace(/:chart_with_upwards_trend:/g, '📈')
.replace(/:dart:/g, '🎯')
.replace(/:bulb:/g, '💡')
.replace(/:white_check_mark:/g, '✅')
.replace(/:date:/g, '📅')
.replace(/:red_circle:/g, '🔴')
.replace(/:large_yellow_circle:/g, '🟡')
.replace(/:large_green_circle:/g, '🟢')
.replace(/:large_blue_circle:/g, '🔵')
.replace(/:large_purple_circle:/g, '🟣')
.replace(/:white_circle:/g, '⚪')
.replace(/:black_circle:/g, '⚫')
.replace(/:first_place_medal:/g, '🥇')
.replace(/:second_place_medal:/g, '🥈')
.replace(/:third_place_medal:/g, '🥉')
.replace(/:sun_with_face:/g, '🌞')
.replace(/:sunny:/g, '☀️')
.replace(/:crescent_moon:/g, '🌙');
text += `${converted}\n\n`;
break;
case 'divider':
text += `─────────────────────────────\n\n`;
break;
case 'context':
if (block.elements) {
block.elements.forEach(el => {
const contextText = el.text || '';
// context에도 "Automated" 링크가 있을 수 있으니 체크
if (!contextText.includes('Automated with this')) {
text += `_${contextText}_\n`;
}
});
text += `\n`;
}
break;
}
});
return {
json: {
chatResponse: text.trim()
}
};
```
### 관련 노트
[[MOC_AI_자동화]] - [[Determination of Phenolic Acids and Flavonoids in Kitam by Liquid Chromatography-Tandem Mass Spectrometry Coupled with a Post-Column Derivatization Technique]] - [[프롬프트 엔지니어링의 진화, 컨텍스트 엔지니어링이란]] - [[네이버 블로그 텍스트 마이닝 병합 스크립트]] - [[텍스트 마이닝 분석 도구 FastAPI 구축 스크립트]] - [[텍스트 마이닝 분석 도구 KNU 한국어 감성사전]]
## 🧠 Connected Insights
> 📅 Last analyzed: 2026. 3. 14. 오후 7:06:32
> 💰 Analysis cost: $0.0169
### 🔗 Related Notes
- 🔗 [[자동화 스크립트/네이버 블로그 텍스트 마이닝 병합 스크립트.md]]
- related: 두 노트 모두 n8n에서 JavaScript를 활용해 텍스트 데이터를 가공, 변환하는 자동화 스크립트로, 입력 데이터의 구조를 파싱하고 특정 형식(텍스트, 분석 결과 등)으로 변환한다는 점에서 개념적으로 유사하다.
- Confidence: ████░ (80%)
- 🔗 [[자동화 스크립트/마크다운 to Notion API 블록 스크립트.md]]
- related: 슬랙 Block Kit 텍스트 변환 스크립트가 슬랙의 구조화된 데이터를 텍스트로 변환하는 것처럼, 마크다운 to Notion API 블록 스크립트도 마크다운을 Notion의 구조화된 블록 데이터로 변환한다. 모두 텍스트 포맷 간 변환 로직을 다루는 점에서 연관성이 있다.
- Confidence: ████░ (75%)
- 🔗 [[자동화 스크립트/네이버 블로그 본문 클리닝 스크립트.md]]
- related: 네이버 블로그 본문 클리닝 스크립트는 HTML 등 불필요한 요소를 제거해 텍스트를 정제하는데, 슬랙 Block Kit 텍스트 변환 스크립트 역시 이모지 등 특수 문자를 변환하고 불필요한 블록을 스킵하는 등 텍스트 정제의 성격을 가진다.
- Confidence: ████░ (70%)
- 🔗 [[자동화 스크립트/마크다운 to Notion API 유튜브 블록 스크립트.md]]
- related: 마크다운 to Notion API 유튜브 블록 스크립트도 마크다운 텍스트를 특정 API 포맷(노션 블록)으로 변환하는 로직이 포함되어 있어, 텍스트 포맷 변환 및 자동화라는 점에서 개념적으로 연관된다.
- Confidence: ███░░ (68%)
- 🔗 [[자동화 스크립트/네이버 블로그 본문 CSV 파일 스크립트.md]]
- related: CSV 파일 스크립트는 다양한 형태의 텍스트 데이터를 표준 포맷(CSV)으로 변환하는데 초점을 두고 있어, 입력 데이터의 구조를 파싱하고 변환한다는 점에서 유사성이 있다.
- Confidence: ███░░ (65%)
### 📚 Knowledge Gaps
- 🔴 **슬랙 Block Kit의 다양한 블록 타입 지원**
- 현재 스크립트는 header, section, divider, context 블록만 처리하며, image, actions, file 등 다른 Block Kit 타입은 미지원이다. 실제 슬랙 메시지 자동화에서 다양한 블록 타입을 포괄적으로 지원하는 것은 활용도를 높인다.
- Suggested resources: Slack Block Kit 공식 문서: https://api.slack.com/block-kit, 슬랙 개발자 커뮤니티 포럼
- 🟡 **이모지 및 마크다운 변환의 확장성**
- 이모지 및 마크다운 변환이 하드코딩되어 있어, 새로운 이모지나 마크다운 패턴이 등장할 때마다 스크립트 수정이 필요하다. 확장 가능하고 유지보수 쉬운 구조(예: 매핑 테이블, 플러그인 구조 등)가 필요하다.
- Suggested resources: JavaScript에서 동적 매핑 구현 방법, Slack 이모지 리스트: https://www.webfx.com/tools/emoji-cheat-sheet/
- 🟡 **슬랙 Block Kit → 마크다운/HTML/Notion 등 다양한 포맷 변환 비교**
- 슬랙 Block Kit을 단순 텍스트 외에 마크다운, HTML, Notion 블록 등 다양한 포맷으로 변환하는 방법과 그 차이점, 장단점에 대한 비교·정리가 부족하다.
- Suggested resources: Notion API 공식 문서: https://developers.notion.com/, 마크다운 변환 라이브러리 비교 글
- 🟢 **실제 활용 사례 및 워크플로우 통합**
- 스크립트의 실제 적용 예시(예: 슬랙 메시지 자동 요약, 리포트 자동화 등)와 n8n 워크플로우 내 통합 사례가 구체적으로 제시되지 않았다. 실전 적용 사례가 있으면 이해와 활용도가 높아진다.
- Suggested resources: n8n 공식 워크플로우 예제, 슬랙 자동화 사례 블로그
### 💡 AI Insights
이 노트는 Slack Block Kit 메시지를 텍스트로 변환하는 n8n 자동화 스크립트로, 데이터 파싱 및 포맷 변환 자동화라는 점에서 여러 관련 노트와 개념적으로 밀접하게 연결되어 있습니다. 특히 n8n, Notion, Obsidian 등 다양한 데이터 자동화 워크플로우 내에서 활용될 수 있는 실용적 도구로, 실제 업무 자동화에 적용 가능한 기반을 제공합니다. 그러나 Slack Block Kit의 다양한 블록 타입 지원, 이모지 및 마크다운 변환의 확장성, 다양한 포맷 간 변환 전략, 그리고 실제 활용 사례 등에서 지식적 공백이 존재하며, 이를 보완하면 활용성과 완성도가 크게 높아질 것입니다.