0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【神効率!】ローコードでZoom Phone通話ログを自動集計📞✨〜Power AutomateとAPIで仕事爆速化の巻〜

Last updated at Posted at 2025-06-05

ChatGPT Image Jun 3, 2025, 12_46_46 PM.png

はじめに 💡

みなさん、日々のZoom Phoneの通話ログや着信履歴など、必要なデータを 「CSVダウンロードして手作業でエクセルまとめてる…」 なんてこと、ありませんか?

今回は、ノーコード/ローコードで Office 連携ができる Microsoft の RPA ツール「Power Automate」とZoom Phone APIを組み合わせて、通話ログの自動集計Botを作る事例を紹介します🐤
比較的簡単に取り込める仕組みなので、エンジニアもそうじゃない人も必見です!

Power Automate ってなに? 🤖

ChatGPT Image Jun 3, 2025, 12_06_47 PM (1).png

ざっくりいうと、Microsoft が提供している業務自動化プラットフォームで、「プログラミング知識ゼロ」でも使えるツールです。複雑なタスクや「他サービス同士の連携」も、画面上の“ドラッグ&ドロップ”だけでサクサク作れるのが特長。

公式の紹介ページはこちら

たとえば

  • 「特定のメールが来たら自動でPDF保存」
  • 「フォーム入力があればリーダーに即通知」
  • 「外部サービスのデータを定期的に取得→Excelへ自動追記」

こんな“業務の自動化”が、GUIだけでできる…それがPower Automate!
ちょっとした面倒なルーチンワークから、API連携の本格自動化まで、ノーコードで現場改善できる“RPAツール” です!

参考記事:

Zoom Phone APIってなに? ☎️

Zoomの電話機能(Zoom Phone)で発生した

  • 通話履歴
  • 発着信イベント
    などの情報を取得したり、コールキューや共有ラインの設定を変更したりといったZoom Phone に関わる様々な操作をAPI経由で実行できます。

必要なもの 📝

  • Microsoft Power Automateアカウント
  • Zoomアカウント(Zoom Phone APIであればZoom Phone契約必須)
  • Zoom MarketplaceでAPI連携用のServer-to-Server OAuth App
  • Excel Online(SharePoint or OneDriveに配置推奨)

やり方ガイド 🚀

1. Excel Onlineに「テーブル」を作る

まず、Excel Onlineでワークシートを作成した後、それをSharePointかOneDriveに保存します。さらに、そのままではPower Automateから見えないようなので、テーブルを作成します。

データを入れる範囲を選択→「テーブル」化

Insertメニューから、Tableを選択すると選択範囲がテーブル化されます。
image.png
必要に応じてヘッダに名前を入れておきましょう。

2. Power Automateで新しいフローを作成

次にいよいよPower Automateを起動します。

Copilotに丸投げもできるみたいですが、今日は一旦左メニューの + Create からワークフローを作成しましょう。
Screenshot 2025-06-03 at 16.10.27.png

お試しでまずは Instant flow を選択して(日時を決めて定期的に動かしたい場合は Scheduled cloud flow を選ぶと良いかと)
Screenshot 2025-06-03 at 16.11.02.png

さらに、Manually trigger a flowを今回は選択してみます。
Screenshot 2025-06-03 at 16.12.15.png

3. アクションの追加

Screenshot 2025-06-03 at 16.24.43.png
最初に現れるのはこのようなカードだと思います。この下のプラスマークをクリックすると、左側にメニューが出てきます。今回はここから、HTTPアクションを選択してみましょう。
Screenshot 2025-06-05 at 11.44.38.png

4. アクセストークンの取得

HTTPアクションを選択したら、次にZoom API用のアクセストークンを取得します。ここでは「Server to Server OAuthアプリ」をZoom Marketplaceで作成し、その情報を使ってトークンを発行します。
Server to Server OAuth やアクセストークンの取得方法については、こちらの記事を参考にしてください。

Power Automateでアクセストークンを取得する場合

HTTPアクションを追加し、上記の内容をPower Automateの「HTTP」アクションに落とし込みます。

Item Content
URI https://zoom.us/oauth/token
Method POST
Headers Authorization : (以下にて説明)
Queries grant_type : account_credentials
account_id: YOUR_ACCOUNT_ID

Authorization部分ですが、Basic (半角スペースを忘れずに)と入力した後にスラッシュをタイプし、Insert expressionを選択します。表示されたポップアップに base64('CLIENT_ID:CLIENT_SECRET')という形で入力し、Addをクリックします。

Screenshot 2025-06-05 at 14.13.09.png

こんな感じですね。一旦ここまででテストしてみましょう。右上のSaveをクリックした後、Testを実行すると、テスト完了後にリンクが表示されます。無事成功すると、アクセストークンが取得できていることがわかります。

Screenshot 2025-06-05 at 14.14.40.png

📝 ワンポイント!

  • トークンの有効期限は1時間なので、使う直前に毎回発行する運用がベスト
  • アカウントやClient Secretの扱いには要注意
  • Server to Server OAuthは「管理者権限」なので誤操作・過剰スコープには気を付けて!

5. APIの実行

同じような形でアクションを追加していき、必要な情報をAPI経由で取得します。
例えば以下のような形で、前述の手順で取得したアクセストークンを使ってリクエストすることが可能です。

Screenshot 2025-06-05 at 14.27.50.png

6. エクセルへの転記

最後に、Excel Onlineのアクションメニューから、Add a row into a table を選択し、必要な情報を必要な場所に入れるよう、仕込んでいきます。

Screenshot 2025-06-05 at 14.34.18.png

詳細は省きますが、イメージはこんな感じです。例として、https://api.zoom.us/v2/phone/call_history で取得したデータのcallee_nameを取得するなら、body('getCallHistory')?['Call_logs']?[0]?['callee_name']という感じになります。

Screenshot 2025-06-05 at 14.37.07.png

7. テスト結果の確認

改めてSaveしてTestしたら、Excel上にAPIで取れたデータが自動追記されてるか確認してみましょう!

Screenshot 2025-06-05 at 14.39.12.png

こんな感じのデータが出力されていれば成功です。

コツ 🧪

  1. 手動トリガーでフローを回してみる
  2. Power Automateの「実行履歴」でエラー発生箇所をチェック
  3. Excelファイルに期待通りのデータが追加されてるか見る
  4. 必要に応じて出力内容やマッピングを微調整

よくあるトラブルと対処法 💥

試行錯誤が少し必要な部分もあるかと思われますが、ありそうなトラブルをまとめてみました。

現象 原因と対策
テーブルが選べない Excelを「テーブル化」していない
Add a rowで「InvalidTemplate」エラー JSONのキー名ミス/配列が空
HTTPアクションの出力が文字列でプロパティ取れない Composeアクションを挟んであらかじめデータを準備しておく
データがダブる・空になる 書き込み範囲、カラム名、マッピングの見直し
SharePoint/OneDriveで「編集できません」 ファイルが他でロック中、権限不足、開きっぱなし

応用編 🪄

  • スケジュールトリガーで毎朝8時に自動集計✨
  • メールやTeamsに通知も組み合わせ可能!
  • 取得項目やフィルタの追加でカスタマイズも自由自在
  • フローをテンプレ化して他の部署や用途にも展開

注意事項(大事)

今回の記事ではテスト目的のため、APIキーやシークレットをフロー内に直接記載して実行していますが、本番環境やチームで使う場合は「そのまま書くのはNG」なので、安全な方法で管理しましょう!

💡 APIキーやシークレットの管理について(一例)

  • Azure Key VaultでAPIキーやパスワードを保管
  • 必要な権限をPowerPlatformに付与
  • Power Appsで “シークレット型”の環境変数 を作成(Key Vaultと連携)
  • Power AutomateからDataverse経由で安全に取得して利用

こうすると「フロー内で直接値を書かずに」「管理者がローテーション・履歴管理」もできて安心です🙆‍♂️

📝 やり方の流れ(ざっくりイメージ)

  1. AzureポータルでKey Vaultを作成し、APIキーを「シークレット」として登録
  2. 権限設定で「Microsoft.PowerPlatform」に取得許可を与える
  3. Power Appsのソリューションで「シークレット型」の環境変数を作成しKey Vaultと紐付け
  4. Power AutomateでDataverseの「RetrieveEnvironmentVariableSecretValue」アクションで値を取得
  5. 取得した値をHTTPアクションのヘッダーやボディに動的にセット

詳しい手順や注意点は、公式ドキュメントや他の技術ブログを参考にしたり、
わからない部分はAIや検索で最新情報を調べてみてください!

おわりに 🍀

これであなたも「手作業ログ集計」卒業!
ローコードなのに業務効率化、おすすめです🦄✨

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?