⏱ 5分
🎯 Copilot Studio
Copilot Studioを触り始めてすぐ、「カスタム変数」と「システム変数」の2種類があることに気づいて混乱した方、多いんじゃないでしょうか。
どっちを使えばいいの?
そもそも何が違うの?
——自分もそこで迷ったので、今回は違いをしっかり整理しておきます。
Copilot Studio で変数を使うとき、「カスタム変数」と「システム変数」の2種類があります。
どちらを選ぶかで扱い方が変わるので、違いを整理します。
カスタム変数:自分で作った変数
会話の中で新しく作成した変数がカスタム変数です。
- 質問アクションでユーザーから取得した回答
- 「変数値を設定する」アクションで作成した変数
- 会話の途中で保存した情報
「この会話で自分で作ったもの」が全部カスタム変数です。

システム変数:最初から存在する変数
→ 関連記事:「【Vol.1】Copilot Studio × Power Automate × Word連携 つまずきポイント3選」
Copilot Studio が最初から持っている変数がシステム変数です。
設定しなくても使えます。
- ユーザーの言語設定
- タイムゾーン
- ユーザー情報(名前・メールアドレスなど)
「Copilot Studio が元々知っている情報」がシステム変数です。
どちらを使うか迷ったときの判断基準
→ 関連記事:「Copilot Studioのここが凄い:対話しているだけで勝手にデータが整う世界」
「この情報は会話の中で聞いたのか?」→ YES → カスタム変数
「この情報はシステムが最初から持っているか?」→ YES → システム変数

まとめ
- カスタム変数:自分で作る変数(質問の回答・計算結果など)
- システム変数:元から存在する変数(ユーザー情報・言語・タイムゾーン)
- どちらを使うかは「いつ・どこで生まれた情報か」で判断する
具体例で考えると分かりやすいです。
たとえばユーザーが「田中です」と名前を入力した場合、その値を後続の質問ノードで使い回したいとき、「ユーザー名」というカスタム変数に格納します。
これがカスタム変数の典型的な使い方ですね。
一方、システム変数はCopilot Studioが自動で管理しているもので、代表的なのは`System.LastMessage.Text`(ユーザーの直近の発言テキスト)や`System.User.DisplayName`(Teamsログインユーザーの表示名)です。
取得や設定の手間なく最初から使えるのが便利なところで、特にユーザー名を毎回聞かずに済むのは体験的に大きな差になります。
注意点として、カスタム変数はTopicをまたぐ場合は「グローバル変数」として定義し直す必要があります。
Topic内だけで完結するなら「ローカル変数」でOKですが、複数Topicで共有したい場合はグローバル変数にスコープを変更することを忘れずに。
まとめ
次の内容で設定します。
実際のPower Automate画面を見ながら確認してみてください。
📋 この記事で学んだこと
変数の使い分けを理解すると、フローがぐっとスリムになります。
まずはシステム変数を一通り確認してみることをおすすめします。
→ 次に読む記事:「【Vol.12】JOIN関数で配列を文字列にまとめる」


コメント