AP社 SNS・クチコミ返信 — 業務フロー図

株式会社Amuseum Parks/アートアクアリウム美術館 GINZA

時点 2026-09-17 読み方 左から右へ流れます。自動=機械 =担当者 停止中=作りかけで止めている工程。 / 仕組みの詳細は システム構成図

納品するのは「承認したら自動で返信が出る」ところまでです。 ⑥で担当者が承認したら、⑦でMacが自動的に各媒体へ返信を出します。 出し方はAPIではなくブラウザ操作(CDP)です。API投稿はアカウント停止のリスクがあるため、 人が使うのと同じ画面を機械が操作する形にしています。
いまは⑦の手前にストッパーを掛けてあります(UI/UXの修正中のため)。 外す条件は下の「止めているところ」を見てください。

全体の流れ

投稿した人来館者・視聴者
各媒体Google・IG・TikTok・X
Mac(常駐)1日1回 ./run.sh all
スプレッドシート受信箱/履歴
AP社 担当者コンソール画面
書き込む
クチコミ・コメント
1受け取る
各媒体に載るGoogle 96 / IG 24 / TikTok 39 / X 9
② 拾う(CDP・API)
2拾う自動
小島のMacで手で叩く(常駐ポーリングはしない)
差分だけ取り込む Google=GBP画面をCDPで読む/IG=Graph API/TikTok=Studio+公開API/X=GraphQL横取り
台帳へ追記 data/*.jsonl追記だけ。消さない・上書きしない
3判定する自動
ネガポジ・カテゴリ・返信型 飼育環境/価格/所要時間/混雑/暗さ/スタッフ/臭い + 言語
返信型で行き先が分かれる A・B・C・E・F・Q → 下書きを作る
D・G・L・N・S → 下書きを作らない(人が書く)
M → 返信不要・対象外
4下書きを作る自動
AI下書き返信テンプレート_v1.md に沿う
同じ投稿に同じ文面が並ばないよう、投稿ごとに文面を回す
5載せる自動
受信箱24列・1行=1件
貼った範囲を読み直して
一致を確かめてから記録する
⑤ スプシへ → ⑥ GAS経由で画面へ
GAS 窓口読み doGet/書き doPost
受信箱シートだけ・トークンで保護
スプシへの出入口はここ1つ
書けるのは7列だけ
(拾った列はGASから書かない)
6承認する
AP社のご担当者
コンソールの受信箱 やり取り・AIの見立て・下書きを1画面で見る
下書きがある回読んで承認する(直してもよい) 下書きが無い回その場で文を書いてから承認する
ここを通らないと⑦は動きません
承認は省略できない関門です
⑦ Macが GAS経由で承認済みを読む(doGet ?state=承認
7出す自動(設計)いまは停止中
送信ストッパー 送信処理そのものがまだありません。
_send() は定義だけ。どこからも呼ばれず、呼べば必ず例外を投げます。
さらに ALLOW_SEND=False(環境変数から変えられない)を重ねてあります
いま ON(1件も出ない)
CDP でブラウザ操作して投稿 人が使うのと同じ画面を機械が操作する。APIでは投稿しない(アカウント停止のリスクがあるため)
reply/post.py いまはGoogleだけ「返信欄まで到達できるか」を確かめる。
IG・TikTok・Xは出す導線そのものが未着手
GAS が両方向を仲介する 読み doGet ?state=承認
書き doPost送信結果
(出した回だけ 送信日時 も)
状態・確定文などは⑥の画面が書く
行はIDで引き当てる
スプシを直接触らないので
並べ替えられても別の行に書かない
承認したら待つだけ次の実行で自動的に出ます。出す前なら承認を取り消して直せます
各媒体へ投稿
返信が届く
媒体に返信が載る
Googleは返信を審査することがある
(却下されうる・要検証)
8反映を確かめる自動(設計)未実装
次の②で拾い直して
実際に載ったかを見る載っていなければ状態を戻して人に知らせる。⑦を通してから作る
履歴前の値・新しい値・更新者・出所
GASを通した変更は1行ずつ残る
(出した記録も含む)
※状態に連動する確認者・確認日時の
自動補完だけは履歴に出ない
完了 ⑦待ち送信日時・送信結果が行に残る。いまは到達確認の結果(dryrun_ok 等)だけ
取り込み・出す・画面 判定 人が決めるところ 完了・窓口 いま止めているところ

人の手が要るのはどこか

工程だれが中身いまの状態
① 受け取る投稿者クチコミ・コメントが各媒体に載る
② 拾う機械差分だけ取り込んで台帳に追記する動いている
③ 判定する機械ネガポジ・カテゴリ・返信型を付ける動いている
④ 下書きを作る機械作らない型がある(飼育環境・センシティブ・日本語以外・指摘・施設判断)動いている
⑤ 載せる機械受信箱へ追記。貼った結果を読み直して確かめる動いている
⑥ 承認するAP社下書きを読んで承認する。下書きが無い回は文を書く。人が通る関門はここだけ動いている
⑦ 出す機械承認済みの文を、CDPでブラウザ操作して各媒体へ投稿する停止中
⑧ 反映を確かめる機械次の取り込みで、実際に載ったかを見て記録する未実装

なぜAPIではなくブラウザ操作(CDP)なのか

APIで投稿するブラウザ操作(CDP)で投稿する
リスク自動化と判定されるとアカウントやAPIアクセスが止まる。止まると拾う側まで一緒に死ぬ人が使うのと同じ画面・同じセッションを操作する。1日1回・人の承認つきで、挙動が人の運用に近い
審査Google・Metaとも返信系は審査が要る(GBPは申請中)。通るまで出せない審査を待たずに出せる
弱いところ媒体側の画面が変わると止まる。止まったことが分かる作りが要る(②で作り込み済み)
土台②の取り込みで既にCDPを使っている。拾うと出すを同じ仕組みに揃えられる

Chromeのプロファイルは媒体ごとに分けてあります(Google 9610/X 9612/TikTok 9613)。 日次収集とぶつからないよう、いずれもコピーを作ってから使います。

2026-09-17 時点の受信箱168件のうち、下書きが用意できているのは100件人が文を書く回が44件(Google 22 / Instagram 2 / TikTok 20)、返信不要が24件です。 TikTokに人の手が要る回が多いのは、日本語以外が半分を占め、飼育環境への批判も来るためです。

下書きを作らない型

対象作らない理由
D飼育環境・動物福祉への指摘定型で返すと火に油を注ぐ。返信には施設側の事実(水質と健康管理の頻度・専門家の監修・個体の休養運用・飼育方針の文書・公開可否)が要る
Gセンシティブ(体調・けが・返金・差別)施設の責任問題になりうる。人が書く
S施設の判断(撮影許可・取材・返金)こちらで決められない
L日本語以外返信テンプレートが日本語専用。返すかどうかも含めて人が決める
N指摘/ポジと判定できない定型の礼を返すと的外れになる
「作らない型が増えた」のは後退ではありません。 2026-09-16 までは、当てはまらない回がすべて「好意的」に落ちていました。 そのため 「Animal abuse museum」「Too many fish in small tanks」 にも 「ありがとうございます。またのお越しをお待ちしております。」が作られていました。 作ってはいけない回を作らなくなった、という意味です。

取り込みの経路(媒体ごとに違う)

媒体取り方Chromeアカウント受信箱
Google クチコミGBP管理画面をCDPで読む(公式APIは審査中)要る
9610
kojima@dev-tokyo.jp96
InstagramGraph API(無期限のSystem Userトークン)要らないartaquarium_official
artaquarium_museum_official
24
TikTokStudio(動画一覧)+公開API(コメント)の2本立て要る
9613
artaquarium_tm_official39
X画面が裏で叩くGraphQLの応答を横取り要る
9612
artaquarium_jp9

⚠️どれも公式に約束された連携ではありません(GBPは管理画面のDOM、TikTokは非公開API、Xは内部GraphQL)。 媒体側の作りが変わると止まります。止まったときに「新着なし」ではなく失敗として分かるようにしてあります。

止めているところ

⑦ 出す — いまストッパーを掛けています
外す条件

⑦を作るときにやること

やることいま
1媒体ごとに返信欄までの導線をCDPで辿る(Google/IG/TikTok/X)Googleのみ到達確認あり。IG・TikTok・Xは未着手
1.5_send() の中身を書いて、呼び出し口を繋ぐ(いまは定義だけで未使用)
21件出して、実際に載ることを自分たちの目で確かめる
3失敗したときの扱いを決める(再試行するか・人に戻すか)
4⑧の反映確認を繋ぐ(次の取り込みで載ったかを見る)
結果の書き戻しをGAS経由にする(IDで引き当て・履歴に残す)2026-09-17 済
51日あたりの上限と間隔を決める(まとめて出すと自動化と見なされやすい)
6合意の記録を取ってから ALLOW_SEND を外す

画面の文言は「本番では、承認するとこの文が自動で各媒体に投稿されます。いまは調整中のため止めてあります」に直してあります(2026-09-17)。 ⑦を通したら「承認すると次の実行で自動的に出ます」に戻します。