情シスフォース

JOUSYS FORCE

ARTICLE

2026/1/15

  • 業務効率化

更新 :

2026/1/27

たった5ステップ!Slackできたお問い合わせをNotionで自動で管理する方法

はじめに

会社のインフラとしてコミュニケーションはSlack、ナレッジやドキュメントの共有をNotionで行っている企業様は多いのではないでしょうか!

その中で情報システム部はSlackのワークフロー(フォーム)でお問い合わせを受け取り、Notionでお問い合わせの対応状況や過去のお問い合わせを管理…といった運用をされているケースも多いかと思います。

そういった運用を手動で転記していたりしませんか?少しでも楽をしたいですよね?

そのような要望を叶えるためにSlackからNotionへの登録を自動で行う方法をご紹介いたします!

Slackから(Googleスプレッドシートを介して)Notionへ登録の自動化

Slack→Notionの自動化といいつつGoogleスプレッドシート(以下スプシ)が出てきましたね。

なんでスプシが出てくるの?スプシが出てくると実現が難しいのでは?という疑問はもっともだと思います。

それに対する回答としては「スプシを挟むとお問い合わせの処理非常に便利!」だからです。

そして実現は非常に簡単です。以下で記載する方法を真似するだけで誰でも実現ができちゃいます!

実現イメージ

ステップ1:Notionでデータベースを作成する

まずはお問い合わせを管理するデータベースを作成しましょう。

ここがゴールになるのでどのような情報が必要かをよく考えなければいけません。

今回はシンプルに「問い合わせ内容」「ステータス」「依頼者」「問い合わせ日」としましょう。

また、ここでデータベースのIDをメモしましょう!

これは何かというと「スプシにこのデータベース登録してほしいよ!」を伝える役割を担います。

データベースIDの確認方法(後で使用する)

下記画像のように「ビューのリンクをコピー」を押します。

コピーしたURLの/から?の間がデータベースIDです

「https://www.notion.so/workspacename/abcdefghijk123456789?v=etajidfsq7543fdih45fdhi&source=copy_link」

ステップ2:Notionでスプレッドシートを受け入れる準備をする

Notionでインテグレーションというものを作成し、先程作成したNotionのデータベースにセットします。

そうすることでスプシからNotionのデータベースへの登録をする道を作ってあげます。

Notionのインテグレーション作成方法

サイドバーの「設定」→「接続」→「インテグレーションを作成または管理する」の順番で押していきます!

その後新しいインテグレーションを作成し、インテグレーション名、関連ワークスペースの情報を入れていきましょう。

関連ワークスペースはデータベースを作成したワークスペースです。

内部インテグレーションシークレットはメモしておきましょう!後で使用します!

アクセスのタブではデータベースの存在するチームスペースが選択されているかよく確認しましょう!

データベースのあるページの右上の設定の「接続」から対象のデータベースにセット!

ステップ3:Googleスプレッドシートを作成する

Googleスプレッドシートを作成しましょう。

シートは「問い合わせログ」と「Notionのユーザーとの紐づけ」の2つ作成します。

「問い合わせログ」シートの各列の1行目にステップ1で設定した項目を記載してあげましょう。

「Notionのユーザーとの紐づけ」シートには画像のように「メールアドレス」と「NotionID」と記入しましょう。

こちらのシートは後ほどSlackで依頼した人のアカウントとNotionのアカウントを紐づける役割をします。

ステップ4:Slackのワークフロー(フォーム)を作成する+Slackからスプシへ接続する

今回お問い合わせを受け取るワークフローをSlackで作成しましょう。

サイドバーの「ツール」または「ワークフロー」から新規作成!

トリガーはなんでもいいので今回はリンクをクリックしたらフォームが出るようにします。

ステップの追加からフォームを追加しましょう。

そしてステップ1で作成したデータベースに合わせて質問を作成しましょう(今回ユーザーに聞くのはお問い合わせ内容だけ)

次にスプレッドシートに追加するをステップに加えましょう

そして先程作成したスプシとシートを選択します。

自動で各列の名前が表示されるので設定をして保存をします(依頼者はメールアドレスを選択してください)

ステップ5:スプシからNotionへ接続する(GoogleAppsScript)

最後にスプレッドシートに色々仕掛けていきます。

まずは上部のタブの「拡張機能」から「Apps Script」をクリックして開きます。

開いたらやることは下記をコピーして貼り付けて、あらかじめメモしたデータベースIDとNotionのAPI_KEYを修正するだけ!

コード

/**
 * 設定項目
 */
const NOTION_API_KEY = 'ここにインテグレーションシークレットを貼り付け';
const DATABASE_ID    = 'ここにデータベースIDを貼り付け';

/**
 * 1. Notionからユーザー一覧を取得し、スプレッドシートの「Notionのユーザーとの紐づけ」シートを更新する関数
 */
function getNotionUserList() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('Notionのユーザーとの紐づけ'); //
  
  const url = '';
  const options = {
    'method': 'get',
    'headers': {
      'Authorization': 'Bearer ' + NOTION_API_KEY,
      'Notion-Version': '2022-06-28'
    }
  };

  try {
    const response = UrlFetchApp.fetch(url, options);
    const users = JSON.parse(response.getContentText()).results;
    
    // シートをクリアしてヘッダーを書き込み
    sheet.clear();
    sheet.appendRow(['メールアドレス', 'NotionID', '氏名']);
    
    // ユーザー情報を書き込み
    users.forEach(user => {
      if (user.type === 'person') {
        sheet.appendRow([user.person.email, user.id, user.name]);
      }
    });
    console.log("ユーザー情報の取得が完了しました。");
  } catch (e) {
    console.error("ユーザー取得エラー: " + e.message);
  }
}

/**
 * 2. スプレッドシートの更新を検知してNotionへ登録する関数(トリガー用)
 */
function postToNotion() {
  // 「問い合わせログ」シートの最終行を取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const logSheet = ss.getSheetByName('問い合わせログ');
  const lastRow = logSheet.getLastRow();
  
  // データの取得(A列:内容, B列:ステータス, C列:依頼者(Email), D列:問い合わせ日)
  const data = logSheet.getRange(lastRow, 1, 1, 4).getValues()[0];
  const [content, status, email, date] = data;

  // NotionIDを紐づけシートから検索
  const mappingSheet = ss.getSheetByName('Notionのユーザーとの紐づけ');
  const mappingData = mappingSheet.getDataRange().getValues();
  let notionUserId = "";
  
  for (let i = 1; i < mappingData.length; i++) {
    if (mappingData[i][0] === email) {
      notionUserId = mappingData[i][1];
      break;
    }
  }

  // Notion APIへリクエスト用のペイロード作成
  const url = '';
  const payload = {
    'parent': { 'database_id': DATABASE_ID },
    'properties': {
      '問い合わせ内容': { 'title': [{ 'text': { 'content': content } }] },
      'ステータス': { 'status': { 'name': status || '未対応' } },
      '問い合わせ日': { 'date': { 'start': formatDate(date) } }
    }
  };

  // 依頼者のNotionIDが見つかった場合のみ追加
  if (notionUserId) {
    payload.properties['依頼者'] = { 'people': [{ 'id': notionUserId }] };
  }

  const options = {
    'method': 'post',
    'headers': {
      'Authorization': 'Bearer ' + NOTION_API_KEY,
      'Content-Type': 'application/json',
      'Notion-Version': '2022-06-28'
    },
    'payload': JSON.stringify(payload),
    'muteHttpExceptions': true
  };

  try {
    const res = UrlFetchApp.fetch(url, options);
    console.log("Notion登録結果: " + res.getContentText());
  } catch (e) {
    console.error("Notion登録エラー: " + e.message);
  }
}

/**
 * 日付をISO 8601形式(YYYY-MM-DD)に変換するヘルパー関数
 */
function formatDate(date) {
  if (!date) return new Date().toISOString().split('T')[0];
  const d = new Date(date);
  return d.getFullYear() + '-' + ('0' + (d.getMonth() + 1)).slice(-2) + '-' + ('0' + d.getDate()).slice(-2);
}

最後にトリガーを下記画像のように設定しておきましょう。

これを設定しておくことによって自動でSlackからNotionに情報が送られます。

登録されるかのテスト

実際にSlackから問い合わせできるかを確認しましょう(ドキドキ…)

できたー!!ユーザーもNotionの情報で登録されておりいい感じです。

実際に使用する際はいろんな項目を増やして使用すると良さそうです。

ぜひこのやり方で管理を自動化してみてください!

お問い合わせは下記から✨

お問い合わせ管理をはじめ、情シスに関するお悩みの相談も承っております。少しでも興味をお持ちいただいた方は下記からお気軽にご連絡ください!

https://jousys-force.deepapex.com/#contact-form

TOP

  • 情シス仕事術

たった5ステップ!Slackできたお問い合わせをNotionで自動で管理する方法

情シスのアウトソーシング・BPOなら「情シスフォース」

情シスフォースは“すぐに・新しいIT技術”を社内に取り入れることができる情シスのアウトソーシングサービスです。一般的なアウトソーシングと違い、蓄積したノウハウを活用し、会社の成長や課題にあわせて専門家が対応、時間制で利用できるため圧倒的なコストパフォーマンスで支援するのが特徴です。

まずは相談してみる

RECRUIT

\一緒に働いてくれる方を募集しています/

積極採用中!

これまでの情シス・エンジニアリング経験を活かし、お客様の社内のIT推進やセキュリティ強化を丁寧にスピーディーに推進しませんか!

採用について

\ エンジニアの専門家チームが
情シスの課題をスピーディーに解決 /

エンジニアの専門家チームが
情シスの課題をスピーディーに解決

まずは相談してみる