【開発事例】kintoneとBOXのファイル連携

【開発事例】kintoneとBOXのファイル連携

kintoneからBOXのファイル、直接見れたらいいのにな…を作りました

kintoneとBOX、両方使ってる会社さん、結構多いですよね。

で、だいたいこうなる。

kintoneのレコードにBOXのリンク貼っておいて、
クリックして、BOX開いて、ログインして、
ファイル探して、やっと中身が見れる。

――いや、手数多くない?

ちょっと確認したいだけなのに毎回これ。
しかもファイルが複数あると、BOXのフォルダを行ったり来たり。
地味にストレスなんですよ、これ。

じゃあ既存のBOX連携プラグイン入れればいいじゃん、って思いますよね。
ところがこれがまた厄介で、BOXのアカウントを利用者全員分用意しないといけないものが多い。

kintoneを50人で使ってたら、BOXも50アカウント。
「ファイルをちょっと見たいだけなのに、全員分のBOXライセンス?」
――コスト的にちょっと現実的じゃないですよね。


というわけで作りました

kintoneのレコードを開いたら、BOXのファイルがその場で見えるプラグインです。

別タブで開く必要なし。BOXにログインし直す必要なし。
レコード開いたら、もうファイルの中身が見えてる。それだけです。

しかもBOXのアカウントは管理用のサービスアカウント1つだけでOK
kintoneを使ってる人が何人いても、BOXのライセンスを人数分買う必要はありません。
ここ、コスト面でかなり大きいと思います。

対応してるファイル形式は120種類以上
PDF、Word、Excel、PowerPoint、画像、動画…
だいたいのビジネスファイルはいけます。


地味にうれしいポイント

矢印でサクサク切り替え

フォルダの中にファイルが10個あったら、矢印ポチポチで順番に見ていけます。
いちいちファイル一覧に戻らなくていい。
左のファイル一覧と連動してるので、今どれ見てるかもすぐわかる。

「見せたいけどダウンロードはさせたくない」に対応

これ、意外と要望多いんですよ。

kintoneのユーザー・組織・グループ単位でダウンロードの可否を設定できます。
「営業部はプレビューだけ、管理部はダウンロードもOK」みたいなことができる。
BOX側の共有設定とは別で制御できるので、運用が楽です。

セキュリティ、ちゃんとやってます

「便利だけどセキュリティ大丈夫?」って聞かれるので先に言っておくと。

  • BOXのフォルダIDはブラウザに一切出しません。サーバー側だけで管理
  • アクセストークンは「プレビューだけ」の最小権限に絞って発行
  • トークンは約50分で自動失効

雑にURLを埋め込んでるわけじゃないです。ちゃんとやってます。


既存の連携方法と何が違うの?

よくあるやり方 このプラグイン
ファイル表示 BOXへのリンク。別タブで開く kintone画面内でそのままプレビュー
DL制御 BOXの設定頼み kintone側で制御できる
関連レコード 非対応 別アプリのレコードからも参照OK
セキュリティ URLがブラウザに丸見え フォルダID非露出 + トークン制限
BOXアカウント 利用者全員分のライセンスが必要 サービスアカウント1つでOK
カスタマイズ パッケージ製品なので融通きかない 会社の運用に合わせて調整可能

 


「うちはこういう使い方したいんだけど」にも対応します

正直なところ、BOXのフォルダ構造ってお客様によって全然違います。

  • 顧客ごとにフォルダ分けてる会社
  • 1つのフォルダにファイルをドサッと入れて、ファイル名で管理してる会社
  • 年度 → 月 → 案件、みたいに階層が深い会社
  • ファイル1枚を1レコードで管理したい会社

全部パターンが違うので、パッケージ製品をポンと渡して終わり、にはしていません。
お客様の運用を聞いたうえで、最適な連携方法を一緒に考えます。

「レコード作ったらBOXのフォルダも自動で作ってほしい」みたいな話もよく出ますが、
そういうのも対応できます。


こういう業種のお客様からよく相談いただきます

  • 不動産・建設 — 図面や契約書をBOXに置いて、kintoneで案件管理してる
  • 士業 — 顧客の書類をBOXで共有、kintoneで顧客管理してる
  • 製造業 — 検査報告書・仕様書がBOX、管理台帳はkintone
  • 金融・保険 — 大量の帳票をBOXに保存、顧客番号で紐づけたい

まあ要するに、kintoneとBOX両方使ってて「面倒だな」と思ってたら
たぶんお力になれます。


お見積もり無料です。お気軽にどうぞ。

「こういうことできる?」レベルのご相談でも全然OKです。
お話聞いたうえで、最適な方法をご提案します。

お問い合わせはこちら

技術的なことが気になる方へ(おまけ)

構成はこんな感じです。

kintoneプラグイン → Google Apps Script(認証プロキシ) → BOX API

BOXの認証(JWT)をGASが代行するので、ブラウザに認証情報が出ません。
別途サーバーを立てる必要もなし。今回の利用ではGASの無料枠に収まりました。

大規模になってきたらAWS Lambdaをつかっても良いかも。

BOX Content Preview SDKを使っているので、
ファイル形式ごとにビューアを用意する必要もありません。
BOXが対応してるファイルならだいたい見れます。

プラグイン設定はこんな感じ。ユーザー毎に挙動を変えたりも可。(一部伏字してます)