🚀 新規事業
slack-channel-auto-create
最終更新 2026年05月09日 / 40_新規事業/SCALE_Build/カタログ/機能集/slack-channel-auto-create.md
Slack チャンネル自動作成 + 招待
用途
Slack API でチャンネル新規作成 → ユーザー招待 → 初期メッセージ投稿。案件発生時の自動化。
特徴
- conversations.create
- conversations.invite(複数ID対応)
- 初期投稿
- 命名規則パターン
コード(コピペ用)
// Slack チャンネル自動作成 + 招待
async function createSlackChannel(opts: {
token: ●●●●●●;
name: string; // 例: "case-2026-001-acme"
userIds: string[]; // 招待する Slack ユーザーID
initialMessage?: string;
}): Promise<string> {
// 1. チャンネル作成
const cr = await fetch('https://slack.com/api/conversations.create', {
method: 'POST',
headers: { Authorization: `Bearer ${opts.token}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ name: opts.name.toLowerCase().replace(/[^a-z0-9-]/g, '-') }),
}).then(r => r.json());
if (!cr.ok) throw new Error('Channel create failed: ' + cr.error);
const channelId = cr.channel.id;
// 2. 招待
if (opts.userIds.length > 0) {
await fetch('https://slack.com/api/conversations.invite', {
method: 'POST',
headers: { Authorization: `Bearer ${opts.token}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ channel: channelId, users: opts.userIds.join(',') }),
});
}
// 3. 初期メッセージ
if (opts.initialMessage) {
await fetch('https://slack.com/api/chat.postMessage', {
method: 'POST',
headers: { Authorization: `Bearer ${opts.token}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ channel: channelId, text: opts.initialMessage }),
});
}
return channelId;
}
// 使い方:
// const channelId = await createSlackChannel({
// token: ●●●●●●,
// name: `case-${caseId}-${clientName}`,
// userIds: [pmId, fsId, ceoId],
// initialMessage: `📋 案件「${clientName}」始動。詳細: ${url}`,
// });
使い方
対象プロジェクトに該当ファイルをコピーして、props を流し込むだけ。
注意事項
- 依存パッケージを忘れず追加