Quip終了に伴うデータエクスポートでお困りの方へ

【プロンプトあり】Salesforceフロー変数の基礎と使い分け

「この作業、自動化できない?」
現場からの相談に「フローならできるかも!」と意気揚々と画面を開いたものの、謎の言葉「変数」を前にそっと画面を閉じてしまった……。そんな経験はありませんか?

プログラミング未経験の方が最初にぶつかる壁、それが「変数」です。「急にハードルが上がった」と戸惑う気持ち、すごく分かります。

でも、安心してください。実はこれ、日常に置き換えるだけでスッキリ理解できるんです。

本記事では「変数」の説明から、変数の名づけをサポートするプロンプト、そして「コレクション変数」との使い分けを分かりやすく解説します!

目次

変数ってなんだろう?

Salesforceだけでなくプログラムの世界では ❝変数❞ という単語がよく出てきます。これはプログラミングをする上で一番の基礎となる概念です。

しかしプログラムを勉強していない方からすると、なじみのない言葉です。
その言葉が基礎的なのか応用的なのかの判断もつかず、結果として「何が分からないかも分からない」という状態に陥ってしまいます。

まずは一番の基礎 ❝変数❞ をしっかりと理解して、Salesforceのフローを深いレベルまで理解してみましょう。

変数とはデータを入れる器である

あなたは家の中で500円玉を見つけました。さて、この500円玉をあなたはどうしますか?
お財布にしまったりポケットに入れたり、どこかに保管をすると思います。
この保管場所となる「何かを入れておける器」をプログラムでは変数と言います。

例えば、ユーザが入力した数字からマイナス10を行うプログラムを書いたとします。
そのマイナス10した結果は、後々どこかの処理で利用するとした場合、毎回 [ユーザの入力値 ー 10] を計算するのは手間になりますよね。
このような場合に「ユーザの入力値からマイナス10した結果」を格納する器(変数)を用意してあげることで、再計算の手間を省くことが出来ます。

このように一時的に値を保管する器のことを ❝変数❞ と呼びます

変数に関しては利用目的にあわせてさまざまな関連記事がございますのであわせてご覧ください。

変数を使いこなすための鉄板ルール

変数には形が存在する

先ほど拾った500円玉をお財布ではなく、ミカン箱にしまう人は、あまりいないと思います。
反対に、買ってきたミカンをお財布や貯金箱にしまう人もいないと思います。

プログラミングの世界(Salesforceフロー)でも同じです。
❝株式会社サンブリッジ❞ や ❝Salesforce❞ などの文字を扱う変数、 ❝1234❞ や ❝-56.78❞ など数値を扱う変数など、変数にも形(グループ)があります。

定められた形以外の値を入れると、プログラムの世界ではエラーとなり、正常に動作しなくなります
「どのような値が、どの形の変数に入るか(入れるべきか)」をしっかりと意識して、フローを作りましょう。

変数には分かりやすい名前をつける【プロンプトあり】

変数はデータを一時的に入れる器であり、その器には入れられる形が決まっていることが分かったと思います。
しかしこれだけでは変数を扱うことは出来ません。
変数には、名前を付けてあげる必要があります。

例えばお金を保管する器(お財布、封筒、貯金箱 など)が、この世の中で全て同じ名前だとした場合、どのことを指しているか分からなくなってしまうと思います。
またそれぞれ別の名前だとしても、例えば「かねぶくろ①」「かねぶくろ②」などの名前では、お財布のことか封筒のことか、何を指しているかすぐには分かりません。

プログラムでも同じく、変数には適切な名前を付ける必要がある

「Text1」「hensu」「UserInput1」など、どんな値が入っているか分からない名前は避けた方が良いです。

今の時代なら、ChatGPTやGemini、Claude Codeなどを活用して、適切な変数名をAIに生成してもらうことも、大事な開発力の一つです。

参考として、私が利用しているプロンプトを以下に記載しておきます。

# 命令
あなたは優秀なシステムエンジニアです。
以下の【要件】に適した「変数名」の命名案を提案してください。
提供された【命名ルール】および【回答ルール】を厳密に遵守し、【出力フォーマット】に従って出力してください。

# 要件
・対象の具体的な役割や処理内容:
(※ここにユーザーが要件を入力します。例:ユーザーの未読メッセージを取得する処理、など)

# 命名ルール
・記法:ローワーキャメルケース(最初の単語は小文字、以降の単語の先頭を大文字。例:isLoading、userName)
・関係性:人やモノの関連性を示す場合、適切な前置詞を利用すること(例:sendToUser)
・文字数:30文字以内
・真偽値(Boolean)の場合:
 ・接頭辞は「is」「has」「can」などの動詞・助動詞を使用し、状態が明確に分かる名前にする
 ・否定的な意味を持つ変数名(例:isNotLast)は混乱を招くため使用しない
 ・「check」など、true/falseの判定結果が直感的に分からない単語は避ける

# 回答ルール
・命名案を必ず【5つ】提案すること
・各提案に対し、要件への適合度合いを示す【推奨度(0~100%)】を記載すること
・その命名にした理由と、その推奨度をつけた理由を合わせて【100文字程度】で説明すること

# 出力フォーマット
1. 提案名:〇〇(推奨度:〇〇%)
〔説明〕
(命名理由と推奨度の理由を100文字程度で記載)

2. 提案名:〇〇(推奨度:〇〇%)
〔説明〕
...
(以下5つ目まで繰り返し)

上記プロンプトを会話の最初に始めておけば、それ以降は要件を伝えるだけでAIが変数名を提案してくれます。
ぜひご活用ください!

たまに出てくる「コレクション変数」ってなんだ?

一番の基礎 ❝変数❞ がどのような概念か分かっていただけたかなと思います。
じゃあ実際に変数を利用しようと作成画面を開くと「複数の値を許可(コレクション)」という、よく分からない概念がまた出てきました。

Salesforceフローの変数作成画面のスクリーンショット。「複数の値を許可(コレクション)」に下線を引いている。

※「フロー外部での可用性:入力で使用可能、出力で使用可能」もよく分からない概念だと思いますが、今後の記事で解説いたします!

チェックを付けるべきか迷ったときの判断軸

自分が作成したい変数において、この設定にはチェックを付けるべきか、そうでないのか分からないと思います。
そのようなお困りごとに結論からお伝えすると、「1つの変数で、2つ以上のデータを保持するなら✓を付ける、そうでないなら✓は付けない」です。

先程のセクションで、日常における例としてお金の話をしました。
お金を入れる器としてお財布や封筒などがあり、その器こそが変数であると解説しました。

しかし厳密には「お財布」や「封筒」は、この設定に✓を付けた変数「コレクション変数」に該当します。

お財布や封筒に入れられる紙幣や硬貨は1枚だけでしょうか?…そんなことないですよね。
お財布も封筒も、1つの器に2つ以上のモノが入れられます。
つまりは ❝複数の値が許可されている器(コレクション変数)❞ ということです。

Salesforceフローでは以下のようなシーンで、✓を付けるか / 付けないか判断する

  • チェックを付けないシーン(通常の変数を利用)
    • 画面にてユーザが入力した値を保管する
    • フローにて取得した「一番最近更新された1つの商談レコード」を保管する
    • フロー内で計算した結果を一時的に保管する
    • 外部システムからのレスポンス値であるJSONを保管する(※高度な内容です)
  • チェックを付けるシーン(コレクション変数を利用)
    • 画面にてユーザが複数選択したデータ群を保管する
    • フローにて取得した「今月更新された全ての商談レコード」の一覧を保管する
    • 1つの文字列を ,(カンマ) 区切りで分割した時の結果を保管する(※高度な内容です)
画面フローでユーザが入力した値を変数またはコレクション変数に格納するイメージ図。

上記以外にも多くのシーンがありますが、基本的には通常の変数を利用すれば問題ないです。
複数の値を1つの器に集約する必要が出てきたときに、コレクション変数を利用します。

Tips:コレクション変数はSalesforceフローだけの概念ではない

  • プログラムの世界において、1つの変数で複数の値を持つ考え方は基本的な概念として存在します
  • コレクション変数のように、同じ形で複数の値が横並びで格納されている構造は、プログラミングでは「配列」や「リスト」と言います

まとめ:変数とは値を入れる器で、複数の値を入れることも出来る

変数とはどのような概念なのか理解できましたでしょうか。
変数を理解する上で必要なポイントを以下にまとめておきますので、分からなくなったら、本記事を振り返っていただければ幸いです。

  • 変数とは値を一時的に保管する器
  • 変数には形があり、形の違う値を入れようとするとエラーになる
  • 変数には分かりやすい名前を付ける
  • 1つの変数で複数の値を保管できる変数を「コレクション変数」という

私の次回の記事は、フローを組むうえで必要となる「論理的思考の基礎」を予定してますので、是非ご期待くださいませ。

サービス・ソリューションに関するお問い合わせ

Salesforce・AWSなど、ご支援に関してご不明な点やご相談はこちらからお問い合わせください。

貴社のビジネス課題を発見し、解決にむけてコンサルタントがご提案いたします。

この記事を書いた人

2024年にサンブリッジに入社し、主にPM / PL / SEとして日々の業務に取り組んでおります。コーディングが伴う開発も可能であり、ApexやLWCなどの高度な開発を組み込みながら、最適なSalesforceを提供することを心掛けております。

「Salesforce = 使いやすい柔軟なシステム」として、みなさまに認知してもらえるような情報を発信していきます。

<保有資格>
Salesforce 認定 Agentforce スペシャリスト
Salesforce 認定 Data 360 コンサルタント
Salesforce 認定 Agentforce Service コンサルタント
Salesforce 認定 Platform デベロッパー

目次