【Vol.10】Copilot Studio|カスタム変数とシステム変数の違い

Power Automate 実践・Tips
★★☆ 中級
⏱ 5分
🎯 Copilot Studio

Copilot Studioを触り始めてすぐ、「カスタム変数」と「システム変数」の2種類があることに気づいて混乱した方、多いんじゃないでしょうか。

どっちを使えばいいの?

そもそも何が違うの?

——自分もそこで迷ったので、今回は違いをしっかり整理しておきます。

Copilot Studio で変数を使うとき、「カスタム変数」と「システム変数」の2種類があります。

どちらを選ぶかで扱い方が変わるので、違いを整理します。

 

カスタム変数:自分で作った変数

会話の中で新しく作成した変数がカスタム変数です。

  • 質問アクションでユーザーから取得した回答
  • 「変数値を設定する」アクションで作成した変数
  • 会話の途中で保存した情報
変数スコープの間違いやすいパターン

❌ Topic内のローカル変数を別のTopicで使おうとする

Topic A でローカル変数を設定 → Topic B で参照 → null エラー

✅ グローバル変数に設定してTopicをまたいで使う

グローバル変数として定義 → 全Topicから参照可能

「この会話で自分で作ったもの」が全部カスタム変数です。

カスタム変数は「空の箱を自分で作って値を入れる」、システム変数は「最初から中身が入っている箱」です。迷ったらその情報を会話中に取得したか?で判断できます。

 

システム変数:最初から存在する変数

→ 関連記事:「【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関数で配列を文字列にまとめる

\ 最新情報をチェック /

💌

最新のPower Automate Tipsを毎日チェック

1枚スライドで関数・概念をわかりやすく解説しています。

𝅧 @isamu_Automate をフォロー →

PA45 — 45分でPower Automateを一緒に学ぼう

毎週木曜夜・オンライン・無料のハンズオン講座。初心者歓迎。

次回PA45に参加する →

コメント

PAGE TOP