COLUMN
お役立ち情報
口コミ分析、商品改善、CRM施策に役立つ考え方や活用ヒントを紹介します。
Power BIでKAIZODEの口コミデータを分析する ― API接続からダッシュボード作成まで
-
- カテゴリ
- API連携
-
- 公開日
- 2026.08.06
-
- 更新日
- 2026.08.06
「口コミの感情分析はKAIZODEのレポートで見られるけど、社内共有用にPower BIでダッシュボードを作りたい」——そんな声にお応えして、今回はPower BIからKAIZODEのAPIに接続し、口コミデータを可視化する手順をご紹介します。
プログラミングの知識がなくても、Power BI Desktopの標準機能だけで実現できます。画面の操作手順に沿って、実際にレビューデータを使いながら進めていきましょう。
目次
この記事でできるようになること
- Power BIからKAIZODE APIに接続し、レビューデータを取得する
- 取得したレビューデータを「感情別」「施設別」に円グラフ・棒グラフで可視化する
- 誰でも編集・更新できるダッシュボードの土台を作る
対象読者は、Power BIを触ったことがない、または触り始めたばかりのマーケティング担当者の方を想定しています。専門的なプログラミング知識は不要です。
事前に準備するもの
作業を始める前に、以下の2つを用意してください。
| 準備するもの | 入手方法 |
|---|---|
| Power BI Desktop | Microsoft公式サイトから無料でダウンロード可能 |
| KAIZODE APIキー | KAIZODEにログイン後、画面右上のアイコン →「APIキー表示」から確認 |
APIキーは第三者に共有しないよう、取り扱いにご注意ください。
STEP1:Power BIで空のクエリを作成する(分析グループ一覧の確認)
KAIZODEでは、レビューを取得する際の単位として**「分析グループ」**を指定します。分析グループとは、比較・分析したい施設や商品をひとまとめにした単位で、KAIZODEの画面上で「分析テーマ」として作成しているものに対応します。
まずは自社にどんな分析グループが存在するかを確認してみましょう。
- Power BI を起動
- 上部メニューの 「ホーム」 →「データを取得」 →「空のクエリ」 を選択
- 作成されたクエリを右クリックし、「詳細エディター」 を開く
- 表示されているテキストをすべて削除し、下記のコードを貼り付けます
let
BaseUrl = "https://kaizode-v2.scorobo.ai/api/v1",
ApiKey = "ここにご自身のAPIキーを入力",
Response = Web.Contents(
BaseUrl,
[
RelativePath = "analysis_groups",
Headers = [#"x-api-key" = ApiKey]
]
),
Json = Json.Document(Response),
Data = Json[data],
Table = Table.FromRecords(Data)
in
Table
- 「完了」をクリック
STEP2:分析グループ名を指定するだけでレビューを取得する関数を作る
KAIZODEのレビュー取得APIは1回のリクエストで最大30,000件まで取得できるページネーション形式のため、全件取得には少し工夫が必要です。あわせて、分析グループ名から自動でIDを検索する処理も関数の中に組み込んだプログラムとなっています。
再び「空のクエリ」を新規作成し、名前を GetReviewsByAnalysisGroupName に変更したうえで、詳細エディターに以下を貼り付けます。
let
GetReviewsByAnalysisGroupName = (analysisGroupName as text) as table =>
let
BaseUrl = "https://kaizode-v2.scorobo.ai/api/v1",
ApiKey = "ここにご自身のAPIキーを入力",
// 1. 分析グループ名から analysis_group_id を検索する
// keywordパラメータは部分一致検索のため、まず完全一致を優先的に探す
SearchResponse = Web.Contents(
BaseUrl,
[
RelativePath = "analysis_groups",
Query = [keyword = analysisGroupName],
Headers = [#"x-api-key" = ApiKey]
]
),
SearchJson = Json.Document(SearchResponse),
Matches = SearchJson[data],
ExactMatches = List.Select(Matches, each Record.Field(_, "analysis_group_name") = analysisGroupName),
SelectedGroup = if List.Count(ExactMatches) > 0 then List.First(ExactMatches) else List.First(Matches),
AnalysisGroupId = SelectedGroup[analysis_group_id],
// 2. 取得した analysis_group_id でレビューをページネーション取得する
FetchPage = (pageNum as number) =>
let
Response = Web.Contents(
BaseUrl,
[
RelativePath = "analysis_groups/" & AnalysisGroupId & "/reviews",
Query = [limit = "300", page = Text.From(pageNum)],
Headers = [#"x-api-key" = ApiKey]
]
),
Json = Json.Document(Response)
in
Json,
FirstPage = FetchPage(0),
TotalItems = FirstPage[pagination][total_items],
Limit = FirstPage[pagination][limit],
PageCount = Number.RoundUp(TotalItems / Limit),
AllPages = List.Generate(
() => [i = 0, result = FirstPage],
each [i] < PageCount,
each [i = [i] + 1, result = FetchPage([i] + 1)],
each [result]
),
AllData = List.Combine(List.Transform(AllPages, each _[data])),
ResultTable = Table.FromRecords(AllData)
in
ResultTable
in
GetReviewsByAnalysisGroupName
「完了」を押すと、このクエリは通常のテーブルではなく「fx」アイコンが付いた関数としてクエリ一覧に表示されます。これは「分析グループ名を渡すと、該当するグループのレビューを全部集めてくれる部品」だとイメージしてください。IDを調べる作業は関数の中でまとめて行っているため、利用する側はKAIZODE画面で見慣れた分析テーマ名をそのまま入力するだけで済みます。
STEP3:レビューデータを展開する
パラメータ"分析グループ名を入力"の部分を、KAIZODE画面上で普段確認している分析テーマ名(例:「動物園比較分析」など)にそのまま置き換えます- 「レポートの作成」をクリックすると、
review(口コミ本文)、sentiment(感情:ポジティブ/ネガティブ/ニュートラル)、review_rating(評価点)、published_at(投稿日)、reviewer_age(年代)などの列を持つレビューデータが展開されます

STEP4:感情別の件数を円グラフにする
まずは基本の「ポジティブ・ネガティブ・ニュートラルの割合」を可視化してみましょう。
- 画面右側の 「視覚化」 パネルから 円グラフ のアイコンをクリック
- 「データ」 パネルにある
sentimentを、視覚化パネルの 「凡例」 欄にドラッグ&ドロップ - 続けて
review_id(またはsentiment自体)を 「値」 欄にドラッグ&ドロップ - 「値」欄に入れたフィールドの右側にある▼マークをクリックし、集計方法が 「カウント」 になっていることを確認
これだけで、施設全体の口コミがポジティブ・ネガティブ・ニュートラルにどう分布しているかが一目でわかる円グラフが完成します。

STEP5:施設別(レビュー対象別)の件数を比較する
施設比較の例では、review_target_name 列に「施設A」「施設B」「施設C」といった施設名が入っています。この列を使えば、施設ごとの口コミ件数比較も簡単に作成できます。
- 視覚化パネルから 横棒グラフ または 縦棒グラフ を選択
review_target_nameを 「軸」 欄にドラッグreview_idを 「値」 欄にドラッグし、集計方法を「カウント」に設定
施設が3〜4件程度であれば円グラフでも見やすいですが、比較対象が増えてくる場合は棒グラフのほうが視認性に優れます。
STEP6:月次の感情推移を折れ線グラフで見る
「最近ネガティブな口コミが増えていないか」をモニタリングしたい場合は、時系列の推移を可視化するのが効果的です。
- 視覚化パネルから 折れ線グラフ を選択
published_at(投稿日)を 「X軸」 にドラッグし、集計単位を「月」に変更sentimentを 「凡例」 にドラッグreview_idを 「Y軸」 にドラッグし、集計方法を「カウント」に設定
これで、月ごとにポジティブ・ネガティブ・ニュートラルの件数がどう推移しているかを線グラフで確認できるようになります。
STEP7:年代×感情のクロス集計で顧客理解を深める
reviewer_age(投稿者の年代)と sentiment を組み合わせると、「どの年代にポジティブな声が多いか」といったペルソナ分析にも活用できます。
- 視覚化パネルから マトリックス または 積み上げ棒グラフ を選択
reviewer_ageを「行」または「軸」にドラッグsentimentを「列」または「凡例」にドラッグreview_idを「値」にドラッグし、「カウント」に設定
コラム:ExcelのPower Queryでも同じ手順で試せます
「わざわざPower BI Desktopをインストールするのはハードルが高い」という方もご安心ください。ここまでご紹介したSTEP1〜STEP3のM言語のコードは、Excelに標準搭載されているPower Queryでもそのままコピペで動作します。ExcelとPower BIは同じPower Queryエンジンを共有しているためです。
まずは手元のExcelでデータ取得だけ試してみたい、という場合はこちらから始めるのもおすすめです。
Power BIとExcelの違い
| 項目 | Power BI Desktop | Excel |
|---|---|---|
| クエリ作成の入口 | 「ホーム」→「データを取得」→「空のクエリ」 | 「データ」タブ→「データの取得」→「その他のデータソースから」→「空のクエリ」 |
| M言語のコード(STEP1〜STEP3) | 同一 | 同一(そのままコピペ可) |
| グラフ作成 | 視覚化パネルで円グラフ・折れ線グラフ等をドラッグ&ドロップ | 取得したテーブルを元に「ピボットテーブル」「ピボットグラフ」を作成 |
| 月次集計 | X軸の集計単位を「月」に切り替えるだけ | 日付フィールドを右クリック→「グループ化」で月単位にまとめる操作が必要 |
| 導入のハードル | 別途インストールが必要 | 多くの方がすでにPCに保有 |
Excelでの基本的な流れ
- Excelを開き、「データ」タブ→「データの取得」→「その他のデータソースから」→「空のクエリ」を選択
- Power Queryエディターが開くので、「詳細エディター」をクリックし、クエリ1にSTEP1のコードをクエリ2にSTEP2のコードを貼り付けます。
- 「閉じて読み込む」を選択すると、レビューデータがExcelのワークシート(またはテーブル)として展開されます
使い分けの目安:まず個人のPCでサクッとデータの中身を確認したい場合はExcel、複数人での共有・定期更新・より高度な可視化を見据える場合はPower BIというように、用途に応じて使い分けるとスムーズです。
まとめ
Power BIとKAIZODE APIを組み合わせることで、口コミデータを社内の他のデータ(売上や広告実績など)と並べてダッシュボード化したり、経営会議用の資料に直接組み込んだりすることが可能になります。
今回ご紹介したのは基本の可視化ですが、慣れてきたら「競合施設との評価点比較」や「特定キーワードを含む口コミの抽出」など、より高度な分析にも挑戦してみてください。
KAIZODEでは、Power BI以外にもLookerなども利用可能です。またMCP(Model Context Protocol)を通じた連携も順次拡充予定です。データを「開いて見る」のではなく、普段使っているツールの中に自然に溶け込ませる——それがKAIZODEが目指す口コミ分析のかたちです。
KAIZODEの外部連携についてはこちらをご覧ください。
顧客の声を、
売れる理由に変えませんか。
KAIZODEの機能、AIレポート、無料デモで確認できることをご案内します。
資料ダウンロードや自社レビューでの活用相談もお気軽にお問い合わせください。