株式会社ZENBU ソリューション事業部

つくば商事 夜間受付管理システム
― 仕組み解説(kViewer相当を自前実装)

何をするものか/どう作っているか/なぜ自前なのか

1一言でいうと

Kintoneのアカウントを持たない社外の人(つくば商事)に、Kintoneの中の受付情報を、安全に・リアルタイムに見せる仕組みです。

これは トヨクモ「kViewer」が担っている役割そのものを、自前で実装したものです。
さらに kViewer には無い 「つくば商事側で管理する機能(確認状況・社内メモ・担当者)」まで載せています。

※ FormBridge(フォーム)は既に自作代替(zenbu-kaketsuke-form)を実証済み。今回はその kViewer 版にあたります。

2何を解決したのか

 これまでいま
流れ ZENBUが夜間の問い合わせをKintoneに記録
→ つくば商事はKintoneを見られない
→ 翌営業日に電話で1件ずつ口頭で移管
ZENBUがKintoneに記録
登録した内容がそのまま画面に出る
→ つくば商事が自分で確認・対応
ZENBU 毎回の電話移管の工数/伝え漏れリスク 電話移管ゼロ
つくば商事 電話を待つしかない/記録が手元に残らない いつでも自分で確認・社内共有・管理できる

3全体構造

ZENBU 受付オペレーター
夜間の問い合わせを受けて入力
入力
Kintone #21「【駆け付け・コール】受付管理」
サイボウズのクラウド/受付データの原本(ここが唯一の正)
REST APIで読み取り(読み取り専用トークン・毎回ライブ取得)
Cloudflare Worker = 本システムの本体
世界中のCloudflareサーバー上で24時間稼働(誰のPCにも依存しない)
画面の配信ログイン/一覧表/詳細/CSV
Kintone取得30秒ごとに最新を取得
D1データベースつくば側の確認状況・社内メモ・担当者
Cron(2分毎)新着メール通知+死活監視
静的配信使い方ムービーの音声
HTTPS + 合言葉でログイン
つくば商事のPC(ブラウザ)
一覧を見る/確認状況・メモを記録/電話する
ポイント:つくば商事はKintoneに一切触れません。Kintoneとの通信はすべてWorkerの内側で完結し、外からはKintoneの存在もトークンも見えません。

4部品と役割

部品役割使っているもの
本体(画面・API)ログイン、一覧表、詳細、CSV出力Cloudflare Worker(JavaScript)
データ源受付レコード(原本)Kintone #21/REST API・読み取り専用トークン
管理状態の保存確認状況・社内メモ・担当者(つくば商事の運用データ)Cloudflare D1(SQLite)
定期実行新着のメール通知/死活監視Cloudflare Cron(2分ごと)
認証合言葉でアクセス制限HttpOnly Cookie(90日)
音声・静的ファイル使い方ムービーのナレーションCloudflare 静的アセット

51件の受付が届くまで(処理の流れ)

  1. ZENBUのオペレーターが、夜間の問い合わせを Kintone #21 に登録する
  2. つくば商事の画面が 30秒ごとにWorkerへ「最新をください」と問い合わせる
  3. Workerが Kintone APIから毎回ライブで取得(キャッシュしない=常に最新)
  4. Workerが D1の確認状況・社内メモを合成して画面へ返す
  5. 画面に表示。新着があれば 音・通知でお知らせ
  6. 別途 Cronが2分ごとに新着を検知して メール通知(宛先設定後に稼働)
  7. つくば商事が 確認状況(未確認→対応中→完了)・社内メモ・担当者を記録 → D1に保存され、社内の全員にリアルタイム共有

6安全設計(見せてよいものだけ見せる)

現状 #21 はつくば商事専用の受付アプリ(全件がつくば商事)のため全件を表示しています。将来 #21 に他クライアントを混在させる運用になった場合は、絞り込み条件の追加が必要です。

7止まらない設計

8なぜ自前で作ったのか(kViewerとの比較)

トヨクモ kViewer プロフェッショナル
月 ¥30,000
年 ¥360,000(税抜)
今回の自前実装
実質 ¥0
Cloudflare 無料枠内で稼働
観点kViewer(トヨクモ)自前実装(今回)
費用月¥30,000/年¥360,000実質¥0(無料枠内)
Kintoneを社外に見せる
閲覧者側の管理機能
(確認状況・社内メモ・担当者)
製品の枠内(別アプリ/別料金の設計が必要)○ 業務に合わせて自由に実装
画面デザイン・UX製品のテンプレートの範囲完全に自由(基幹システム型で作成)
通知・死活監視製品仕様に依存自前で組み込み(Lark即時アラート)
依存先トヨクモCloudflare(自社アカウント)
トヨクモ4サービス+YOOMで 年約221万円 が削減検討の対象。今回はそのうち kViewer(年¥360,000)の役割を自前で実現できることを実証しました。
※ 実際の解約可否は、kViewer管理画面の利用棚卸し(他にどんな用途で使われているか)の完了が前提です。

9他のクライアントへの横展開

クライアント名は変数化してあり(CLIENT_NAME)、別クライアントへは 「名前・合言葉・対象Kintoneアプリ・トークン」を差し替えて再デプロイする構造です。

ただし他クライアントは別のKintoneアプリ(例:#548ケイアイ/#543ワンダーライフ/#562 TOKO)で項目の構成が違うため、フル横展開には「クライアント別の項目マッピング設定」を追加する必要があります(設計済み・次段の作業)。

10構成情報(社内向け)

本番URLhttps://zenbu-tsukuba-yakan.zenbu-cc.workers.dev
使い方ガイド/ムービー/manual/guide
稼働状況/status
データ源Kintone #21(iv234ntfjjtr)/読み取り専用APIトークン
ソースC:\AutoImport\tsukuba_yakan_viewernpx wrangler deploy で更新)
DBCloudflare D1 tsukuba-yakan-db(テーブル rec_state

株式会社ZENBU ソリューション事業部/つくば商事 夜間受付管理システム 仕組み解説