世界初(かどうかは分からない)gusuku Everysiteとgusuku Customineの連携事例

公開日:

更新日:

サービスグループのマネージャーをしている西島です、こんにちは。

今日は中の人の特権(?)ということで、世界初かどうかは分からないですが、gusuku Everysitegusuku Customineの連携事例をご紹介したいと思います。

gusuku Everysiteは2025年5月現在プレビュー版と言う位置づけで、開発中のバージョンをお試しいただくことが可能なステータスとなっています。

今回、このgusuku Everysiteプレビュー版事前申請サイトの受付から契約の付与、利用開始のお知らせメール送信までの業務をカスタマインとエブリサイトで作成しましたので、その中身をご紹介します。

業務の流れ:プレビュー版事前申請サイト

まずお申し込みの部分は、gusuku Everysiteにて作成したサイトにて以下の機能が提供されています。

  • お客様がプレビュー版事前申請サイトにて、プレビュー版お申し込み
  • 弊社kintoneアプリ「Everysiteプレビュー登録者」にレコードが作成される(1お申し込み、1kintoneレコード)
  • お客様が利用規約同意
  • 弊社kintoneアプリのレコードが更新される

ちなみにこの受付サイトはエブリサイトのリアルなデモサイトの働きもしています。作成は弊社デザイナーと今年4月入社の新卒エンジニアの二人三脚にて作成されました。エンジニアの知識が殆どない二人だけである程度の業務用サイトを作れる、と言う見本となっています。

レコードが作成されるアプリの見た目はこのような感じになります。

業務の流れ:契約の付与

このアプリ上で利用規約に同意いただいたお客様に対して、リソースを鑑みつつ順次プレビュー契約を付与していきます。ここではカスタマインにてkintoneアプリをカスタマイズし、以下のような流れで業務を行います。

  • 「公開予定日」と言うフィールドに日付をセット(「日付入力ダイアログを表示する」でセットしたい日付を選択してレコードを更新します)
  • 公開予定日が当日のレコードを確認し、プレビュー契約を付与

kintoneアプリの一覧画面から操作しますので、やること「一覧にチェックボックス列を追加する」を使って、選んでボタンをポチっという、よくある典型的なカスタマイズになりますね。

実際にプレビュー契約を付与する部分は、gusukuの内部システムを呼び出さないといけないので、いまはまだkintoneとはつながっていません。もしkintone画面上からプレビュー契約を作成するのであれば、やること「AWS Lambda ファンクションを実行する」を使用する場面ですね。

業務の流れ:利用開始お知らせメールの送信

前項までの業務で、公開日に日付が入り、作業日当日のレコードにプレビュー契約が付与されました。
最後に利用開始のお知らせメールを送信します。この部分が今回当日急に言われて西島が作成した部分になりまして、作業時間は約3-40分ほどかかっています。

全体としては、このような流れで業務を流すように設計してみました。

  • 一覧画面にて、メール送信先のレコードを選択
  • ボタンをポチッとしたら、エラーチェック
  • 問題なければkintoneアプリのWebhookを起動して、Job Runnerからメール送信

これも一覧画面から操作する、よくあるカスタマイズとなっています。

kintoneアプリのカスタマイズの解説

ここでは実際のカスタマイズ内容をご紹介します。まずはkintoneアプリのカスタマイズです(クリックすると大きくなります)。

クリックで全体表示

画面側では複数のレコードをチェックボックスで選択し、最終的にはやること「kintone Webhook を起動する」を使ってWebhookを起動することになるわけですが、その前にメールを送信してよいかどうかの条件を諸々確認しています。

このようになにか処理を行う前に、正しい操作対象なのかのチェックするのは、プログラミングで言うところの「ガード節」と言う考え方になります。このようなときに使える条件として「フィールドが条件を満たすレコードが1つ以上あるならば」や「全てのレコードでフィールドが条件を満たすならば」といった便利な条件があるので、ぜひお試しください。

チェックが終わったメール送信の対象レコードは、最後にレコードの一覧をポップアップで表示するで内容確認後、Webhookを起動しています。

kintoneアプリのWebhookの解説

こちらも同じく、クリックで拡大表示

kintoneアプリのWebhook(Job Runner)の側では、送られたレコードを条件「レコード1行が準備できた時」で1行ずつメール送信していきます。

ここでは基本的に送られてきたレコードに従ってメールを送信する形になっているのですが、同じ宛先に2通メールは送りたくないので念のため、「メール送信状態」フィールドのチェックだけは入れてあります。これは本当に念の為です(実質的な意味はなく、気分の問題です!)。

SendGrid でメールを送信するにてメールを送信して、最後に「申込ステータス」フィールドを「利用可能」に、「メール送信状態」フィールドを「done」として、終わりです。

まとめ

ということで今回は、gusuku Everysiteとgusuku Customineを組み合わせて業務を行う例として、実際に弊社でいま利用している事例をご紹介しました。それぞれ別製品ですが、kintoneを中心に組み合わせると効率よく回せる業務は色々ありそうですので、皆様の想像力を働かせて業務を改善してみてください!

投稿者プロフィール

アバター画像
西島
"沖縄の自宅からリモートワークで参画している根っからのクラウド・コミュニティ大好き人間。
オープンソースとクラフトビールをこよなく愛する。"