みなさん、こんにちは!
Quick Pages がベータ版として公開されました。「こんなページがほしい」と自然言語で伝えるだけで、エージェントが組織のデータを使ったページを作ってくれる機能です。しかも Developer Edition でも使えます。
この記事では、払い出したばかりの Developer Edition で、Quick Pages の機能の有効化から、ページを作る・会話で直す・保存して共有するまでを順に紹介します。最新の Developer Edition にはサンプルデータが入っていなかったので、ダミーデータを作る Anonymous Apex のスクリプトもあわせて公開します。
- Introducing Quick Pages(Salesforce ブログ)
- Bring Custom UIs to Life with Quick Pages (Beta)(Winter ’27 リリースノート)
📌 この記事は 2026 年 11 月時点(Winter ’27)の情報で作成しています。一般提供までに、機能や画面、提供条件が変わることがあります。
⚠️ 注意
- Quick Pages はベータ版のサービスです。ご利用はお客様ご自身の判断で行ってください。ベータサービスのご利用には、Beta Services Terms と、Product Terms Directory の Non-GA Agentforce / Non-GA Gen AI の条件が適用されます。
- ベータ期間中、Quick Pages の AI 利用は無料ですが、一般提供後は従量課金の対象になります。
- 本番組織ではなく、Developer Edition などで試すことをおすすめします。本記事の手順は Developer Edition で動作を確認しています。
- 購入をご検討の際は、現在一般提供されている機能をもとにご判断ください。
参考:
Quick Pages とは
一言で表現すると、「話しかけるだけで、組織のデータを使ったページを作れる機能」 です。
- 作りたいページを説明すると、エージェントが React ベースの 1 ページのアプリを作ります。ライブプレビューを見ながら、チャットで直��ていけます。
- 組織のメタデータ(カスタムオブジェクトや項目も含む)に沿って作られ、データはいつも最新です。グラフ、表、タブなどを入れられます。
- 作ったページは、個人、公開グループ、組織全体に共有できます。見る人には、その人がアクセスできるデータだけが表示されます。
- 管理者権限がなくても、自分で作れます。 ページを作っても組織のメタデータは変わらず、管理者は組織内のすべてのページを確認できます。
使える組織の条件
- Lightning Experience
- Enterprise / Performance / Unlimited / Developer Edition
- Foundations が有効で、Hyperforce 上にある組織
参考:
全体の流れ
- Quick Pages をオンにする
- 権限セットを割り当てる
- ダミーデータを入れる(任意)
- ページを作る
- 会話で直す
- 保存して共有する
今回は Developer Edition & システム管理者での操作で解説します。
事前準備
公式の Set Up Quick Pages (Beta) では、機能をオンにする前に次の 4 つを確認するよう案内されています。
- 組織が Hyperforce 上にあること(設定 > 組織情報 で、インスタンスが「英字 3 文字+数字」になっていれば Hyperforce)
- 設定 > Salesforce Multi-Framework Apps で、ドメインが有効になっていること(「Enable Domain」ボタンがあれば押す)
- 設定 > 私のドメイン > ルーティングとポリシー で、「Use Salesforce Edge Network」が有効になっていること
- 設定 > Einstein 設定 で、Einstein がオンになっていること
最新の Developer Edition では、これらは最初から満たされています。 そのため、この記事ではすぐに機能の有効化から始めます。既存の組織で試す場合は、上の 4 つを先に確認してください。
ステップ 1:Quick Pages をオンにする
まずは組織で Quick Pages の機能を有効化します。
- 設定 > クイック検索に「Quick」と入力(英語で入力します)
- 「Quick Pages (Beta)」を選択
- 「Quick Pages」のトグルをオンにする
「Quick Pages is turned on in your org.」と表示されれば成功です。
ステップ 2:権限セットを割り当てる
次に、ページを作る人に権限セットを割り当てます。Quick Pages 用の権限セットは 2 つあります。
- クイックページを作成(Create and View Quick Pages (Beta)): ページを作る人
- クイックページを表示(View Quick Pages (Beta)): ページを見るだけの人
今回は自分でページを作るので、「クイックページを作成」を自分に割り当てます。
- 設定 > クイック検索に「権限セット」と入力し、「権限セット」を選択
- 「クイックページを作成」を開く
- 「割り当ての管理」>「割り当てを追加」で自分のユーザーを選び、割り当てる
「1 の割り当てに成功しました。」と表示されれば成功です。
以上で初期設定は完了です。
ステップ 3:ダミーデータを入れる(任意)
最新の Developer Edition には、取引先や商談のサンプルデータが入っていませんでした。データが無いとページを作っても中身が空になってしまうので、Anonymous Apex でダミーデータを作ります。お手持ちの組織にデータがある場合は、このステップは飛ばしてください。
作るデータは次のとおりです。
- 取引先「アストロ製作所」1 件(すでにあれば、それを使います)
- 商談 10 件(フェーズ・金額・完了予定日をばらして作成)
ここでは、ブラウザ上で使える Web コンソールから実行します。
- 画面右上の歯車アイコン(設定メニュー)>「Web コンソール」を開く
- コマンドパレットで
SFDX: Create Anonymous Apex Scriptを実行し、スクリプトのファイルを作る - 作られたファイルに、下のスクリプトを貼り付ける
- エディターの 1 行目の上に出る「Execute」を押す
「Anonymous Apex executed successfully」と表示されれば成功です。
スクリプトは次のとおりです。
scripts/apex/sampledata.apex:
1// ============================================================
2// ダッシュボード用ダミーデータ作成 (Anonymous Apex) 改訂版
3// 取引先: アストロ製作所 (基本情報を拡充)
4// 商談 10件
5// 実行: Web Console > SFDX: Create Anonymous Apex Script で
6// このファイルの内容を貼り付け > SFDX: Execute Anonymous Apex
7// ============================================================
8Savepoint sp = Database.setSavepoint();
9try {
10 // ---------- 取引先 ----------
11 Account acc;
12 List<Account> existing = [SELECT Id FROM Account WHERE Name = 'アストロ製作所' LIMIT 1];
13 if (existing.isEmpty()) {
14 acc = new Account(
15 Name = 'アストロ製作所',
16 Site = '東京本社',
17 Type = 'Customer - Direct',
18 Industry = 'Manufacturing',
19 Rating = 'Hot',
20 AccountSource = 'Web',
21 Phone = '03-0000-0001',
22 Fax = '03-0000-0002',
23 Website = 'https://www.example.com/astro',
24 NumberOfEmployees = 320,
25 AnnualRevenue = 4500000000.00,
26 BillingStreet = '大森北1-2-3 アストロビル',
27 BillingCity = '大田区',
28 BillingPostalCode = '143-0000',
29 ShippingStreet = '京浜島4-5-6 第一工場',
30 ShippingCity = '大田区',
31 ShippingPostalCode = '143-0003',
32 Description = '精密部品・産業機械の製造メーカー。国内3拠点の工場を持ち、'
33 + '生産管理・品質管理の高度化を推進中。ダッシュボード検証用ダミーデータ。'
34 );
35 insert acc;
36 } else {
37 acc = existing[0];
38 }
39
40 // ---------- 商談 (10件: ステージ・金額・クローズ日を分散) ----------
41 Date today = Date.today();
42 List<Opportunity> opps = new List<Opportunity>{
43 new Opportunity(AccountId = acc.Id, Name = 'アストロ製作所 - 生産管理システム導入',
44 StageName = 'Prospecting', Amount = 3000000, CloseDate = today.addDays(90),
45 LeadSource = 'Web', NextStep = '要件ヒアリング日程調整',
46 Description = '既存の表計算ベース管理からの移行案件。'),
47 new Opportunity(AccountId = acc.Id, Name = 'アストロ製作所 - 工場見える化ダッシュボード',
48 StageName = 'Prospecting', Amount = 1800000, CloseDate = today.addDays(120),
49 LeadSource = 'Web', NextStep = '初回提案資料の送付',
50 Description = '稼働状況をリアルタイムに把握したいとの要望。'),
51 new Opportunity(AccountId = acc.Id, Name = 'アストロ製作所 - 受発注システム刷新',
52 StageName = 'Qualification', Amount = 4200000, CloseDate = today.addDays(75),
53 LeadSource = 'Partner Referral', NextStep = '予算・決裁フローの確認',
54 Description = 'パートナー経由の紹介案件。'),
55 new Opportunity(AccountId = acc.Id, Name = 'アストロ製作所 - IoTセンサー追加',
56 StageName = 'Needs Analysis', Amount = 5500000, CloseDate = today.addDays(60),
57 LeadSource = 'Partner Referral', NextStep = '現地調査の実施',
58 Description = '第二工場へのセンサー増設。'),
59 new Opportunity(AccountId = acc.Id, Name = 'アストロ製作所 - 設備保全クラウド',
60 StageName = 'Proposal/Price Quote', Amount = 2700000, CloseDate = today.addDays(45),
61 LeadSource = 'Phone Inquiry', NextStep = '見積書の提出',
62 Description = '予防保全の仕組み化を検討中。'),
63 new Opportunity(AccountId = acc.Id, Name = 'アストロ製作所 - 基幹システム連携開発',
64 StageName = 'Proposal/Price Quote', Amount = 6000000, CloseDate = today.addDays(35),
65 LeadSource = 'Web', NextStep = '技術要件のすり合わせ',
66 Description = '既存ERPとのAPI連携。'),
67 new Opportunity(AccountId = acc.Id, Name = 'アストロ製作所 - 保守契約更新',
68 StageName = 'Negotiation/Review', Amount = 1200000, CloseDate = today.addDays(20),
69 LeadSource = 'Phone Inquiry', NextStep = '契約書レビュー',
70 Description = '年間保守契約の更新。値引き交渉中。'),
71 new Opportunity(AccountId = acc.Id, Name = 'アストロ製作所 - 品質管理ツール',
72 StageName = 'Closed Won', Amount = 2400000, CloseDate = today.addDays(-15),
73 LeadSource = 'Web', NextStep = '導入後フォロー',
74 Description = '受注済み。導入完了済み。'),
75 new Opportunity(AccountId = acc.Id, Name = 'アストロ製作所 - 従業員向け研修プログラム',
76 StageName = 'Closed Won', Amount = 3600000, CloseDate = today.addDays(-70),
77 LeadSource = 'Partner Referral', NextStep = '効果測定のレビュー',
78 Description = '全拠点で実施した研修パッケージ。'),
79 new Opportunity(AccountId = acc.Id, Name = 'アストロ製作所 - 在庫最適化PoC',
80 StageName = 'Closed Lost', Amount = 800000, CloseDate = today.addDays(-30),
81 LeadSource = 'Other', NextStep = '失注理由の振り返り',
82 Description = '競合製品を採用されたため失注。')
83 };
84 insert opps;
85
86 System.debug('✅ 作成完了: Account=' + acc.Id + ', Opportunity=' + opps.size());
87} catch (Exception e) {
88 Database.rollback(sp);
89 System.debug(LoggingLevel.ERROR, '❌ エラー: ' + e.getMessage() + ' / ' + e.getStackTraceString());
90}
91
92// ============================================================
93// 【削除用スクリプト】(必要なときだけ別途実行)
94// List<Account> a = [SELECT Id FROM Account WHERE Name = 'アストロ製作所'];
95// delete [SELECT Id FROM Opportunity WHERE AccountId IN :a];
96// delete a;
97// ============================================================📝 試し終わってデータを消したいときは、末尾の【削除用スクリプト】のコメントを外した部分だけを、別のファイルで実行してください。
取引先「アストロ製作所」を開いて、商談が入っていれば準備完了です。
ステップ 4:ページを作る
それではページを作ってみましょう。
- アプリケーションランチャーで「ページ」と検索し、「Quick Pages (Beta)」を開く
- 「New Quick Page」ボタンを押す
右側のチャット欄に、作りたいページを日本語で説明して送ります。今回は次のように入力しました。
1取引先"アストロ製作所"の商談ダッシュボードを作成して。商談数や金額合計をタイルで表示、またフェーズごとの数量を棒グラフで見せて
⚠️ 現時点でのハマりどころ:日本語入力の Enter で送信されてしまう
現在のベータ版では、日本語入力のかな漢字変換を確定する Enter で、入力途中の指示が送信されてしまうことがあります。別の場所(テキストエディターなど)で書いた指示を貼り付けて送るのがおすすめです。(改修対応中)
送信すると、エージェントがページを組み立て始めます。今回は 20 秒ほどで、次のようなページができあがりました。上には商談数と金額合計のタイル、その下にはフェーズ別件数の棒グラフと、商談の一覧が並んでいます。
💡 プロンプトは短く具体的に書くのがコツです。現時点では、長いプロンプトは 2 分でタイムアウトします。
ステップ 5:会話で直す
次は、できたページを会話で直していきます。
チャット欄を見ると、エージェントが「NEXT」として、次に直せそうなことを候補で出してくれています。今回は「商談を完了予定日の昇順で並べ替える」を押してみます。
商談の一覧が完了予定日の順に並び替わりました。
続けて、次の候補「商談をフェーズで絞り込んで表示する」を押します。ページの上にフェーズのドロップダウンができました。
ドロップダウンでフェーズを選ぶと、その場で商談が絞り込まれます。チャットで頼んだ機能が、そのまま動くページになっています。
もちろん候補を押すだけでなく、チャット欄に自分で指示を書いて直すこともできます。
ステップ 6:保存して共有する
できあがったら、保存して共有します。
- 画面右上の「Save」ボタンを押す
- 「Name your page」にページ名を入力し、「Save」ボタンを押す
⚠️ 現時点の仕様: 保存したあとはページ名を変えられません。 ここで決めておきましょう。
保存すると、画面右上に「Edit」「Share」「Delete」ボタンが出ます。
直すときは「Edit」です。保存した変更は、共有先にもそのまま反映されます。保存しないで終えた変更は下書きに残り、共有先に見えるのは最後に保存した版です。
共有するときは「Share」ボタンを押します。
- 組織全体に共有する場合: 「All org」にチェックを入れる
- 特定の人に共有する場合: 「Add people or groups」で個人や公開グループを検索して追加する
- 「Save」ボタンを押す
ダイアログにも書かれているとおり、見る人には、その人がアクセスできるデータだけが表示されます。 同じページでも、見る人の権限によって表示される内容が変わります。
以上で、ページの作成から共有までは完了です。
ベータ中の制約
Considerations and Limitations for Quick Pages (Beta) から、試すときに気にしておきたいものを抜き出しました(2026 年 11 月時点)。
- ページは読み取り専用です。ページからレコードの作成・更新・削除はできません。データを変えたい場合は元のレコードを直して、ページを再読み込みします。
- プロンプトは短く具体的に。長いプロンプトは 2 分でタイムアウトします。
- 保存したあとはページ名を変えられません。
- 管理者は他の人のページを見たり共有したりできますが、編集・削除はできません。
- Connect REST API や Apex クラスからデータを取ること、Data 360 や外部 API とつなぐこと、Salesforce CMS やファイルの素材を使うことはできません。
- データエクスポートで組織間を移すことや、パッケージに入れることはできません。
これらは正式リリースの際には変わっている可能性があります。最新の情報は公式ドキュメントをご確認ください。
おわりに
この記事では、Developer Edition で Quick Pages (Beta) を有効化し、ダミーデータを入れて、ページを作る・会話で直す・保存して共有するまでの流れを紹介しました。振り返ると、やることは次のとおりです。
- 機能をオンにして、権限セット「クイックページを作成」を割り当てる
- データが無ければ、Anonymous Apex でダミーデータを作る
- 作りたいページを説明して、会話で直して、保存して共有する
これまで、ちょっとした集計や一覧のページがほしいときは、レポートやダッシュボードを組んだり、Lightning Web Components で画面を作ったりする必要がありました。Quick Pages を使えば、話しかけるだけで、組織の実データを使ったページを、管理者権限なしで作れます。 見る人の権限もそのまま尊重されるので、気軽にチームへ共有できるのもうれしいところです。
ぜひ Developer Edition で Quick Pages を試してみてください。
