あなたはリマインダーを使っているでしょうか? 使っているとすれば何を使っていますか?
Apple や Google のカレンダー、各種アプリのリマインダー、色々あるかと思います。
僕はどれもイマイチしっくりきませんでした。(その逆説的な理由は後述「独自リマインダーの何が良かったか」で)
※生成AI画像
ならばと、FileMaker で作ることにしました。FileMaker であれば自分の好きなように作れます。
結果的に、かなり満足度の高いものになっています。定期的な通知のお蔭で「うっかり忘れ」が減りました。
せっかくなので、この仕組みを記事にしてみようと思います。
Index
- やりたいこと
- FileMaker の準備
- 前提・環境など
- Slack の準備
- Make の準備
- FM → Make → Slack のデータ連携
- ハマった点・こだわった点
- 独自リマインダーの何が良かったか
- まとめ
やりたいこと
余談:二段ベッドでは上を選ぶ派です。カプセルホテルなどでも気づけば上段を選んでいます。理由はよくわかりませんが、本能的な何かがあるのかもしれません。FileMaker の独自リマインダーでやりたいことは次のような動きです。
① FileMaker に予定を入れておく
② スケジュールで 1 時間毎にスクリプトを動かす。
③ Make が受信し、Slack の自動操作でメッセージ作成。
④ Slack から iPhone に通知が来る
FileMaker で作るリマインダーの悩ましい点
リマインダーを FileMaker で作るには悩ましい点があります。FileMaker だけでは各ユーザーに定期通知できないことです。(2025年6月現在)
それを Make(旧 Integromat )[↗] というノーコードツールを仲介させて実現できます。
それが本記事の主旨になります。
Slack 以外に使えるか?
なお、本記事では Slack での通知方法をご紹介しています。LINEWORKS を使った方法は、現場目線で書かれた東京紙器さんの記事[↗]が参考になるかと思います。
※ちなみに東京紙器さんとは 2021 年に Claris のカンファレンスで共同登壇しました。▶記事はこちら[↗]
また、Make ではなくClaris Connect (クラリス コネクト) [↗] でも同じことができます。
実際に、最初は Claris Connect でやっていました。
月が替わるとフロー数上限がクリアになるはずですが、なぜかクリアされないので一旦 Make に鞍替えしました。
( Claris Connect を使った方法を知りたいですか?記事にしてほしいリクエストはこちら▶記事化リクエストフォーム[↗] )
前提・環境など
【 使用するもの 】
・FileMaker Pro(アプリ制作用)
・FileMaker Server または FileMaker Cloud(スケジュール設定のため)
・FileMaker Go(通知受取と確認用)
・Slack(通知発信用)
・Make( FileMaker 情報を Slack に送信するため)
【 筆者の環境 】
◇サーバー
・Ubuntu20.04 + FileMaker Server 2024
◇作業・デバイス環境
・Windows 11 + FileMaker Pro 2024
・iPhone 12 mini + FileMaker Go 2024
※正式には「Claris FileMaker Pro」など「Claris」が付きますが、本記事では省略させて頂きます。
FileMaker の準備
次の3つの準備をします。・FileMaker Pro
・FileMaker Server
・FileMaker Go
FileMaker Pro
MyReminder(マイ リマインダー)というファイルを作成し、FileMaker Server にアップロードしました。リマインド日と時間に応じて通知のオン/オフが自動判定されます。
現在時刻の 10 分前になるとステータスが「通知状態」になるように作り込みました。
目指すところ
ステータスが「通知状態」または「超過」の場合に iPhone に通知することを目指します。「超過」は2時間経過後までとしています。通知の見逃しを回避するための対策です。
FileMaker Server
スケジュールの設定をします。指定するスクリプトの内容は後述します。(「FM → Make → Slack とデータを流す」)
スケジュール間隔をどうしようか悩みましたが、僕の場合は 1 時間毎がちょうど良かったです。
そして、あえて 59 分に実行するよう設定しました。
1 分前に気づけば間に合うスケジュールもあるためです。(見逃したくないウェビナーなど)
FileMaker Go
App Store から FileMaker Go をインストールしておくだけで取り敢えず OK です。Slack の準備
App Store から Slack をインストールしてログイン状態にしておきます。アカウントが無い場合は無料登録してください。
登録はパソコンでもできますが、通知を受取るため iPhone で行うのが良いと思います。
ワークスペースとチャンネルは必須
次にワークスペースを作成します。Slack ではワークスペースは必須のようです。ワークスペースができたら、通知用のチャンネルを追加します。こちらも必須です。
Make の準備
本記事の「肝」となるMake(旧 Integromat )[↗] というノーコードツールを使います。FileMaker と Slack の仲介を務めます。
アカウント登録は必須です。ひとまず無料プランで良いと思います。
※Make は基本的に英語のみです。なお、日本語入力は可能です。
無料プランでできること
初めて使う人にとっては分かりにくい制限ですが、次のようになっています。(2025年6月現在)FileMaker から1時間おきに Slack に送信するだけなら無料の範囲で充分使えると思います。
・月間1,000オペレーション* まで
・アクティブなシナリオは2つまで
・シナリオの実行間隔は少なくとも15分ごと
・1つのシナリオの最大実行時間は5分まで
・1ファイルあたりの最大アップロードサイズは5MBまで。
*オペレーション = 各自動化フロー内の1アクション
シナリオを作る
Make は「シナリオ」を作るツールだと思っても良いくらいです。丸いものが繋がったようなものが「シナリオ」です。
今回は、最終的に「Webhooks」と「Slack」の2つのオペレーションでシナリオを構成します。
ダッシュボードなどの右上にある「+Create a new scenario」で開始します。
オペレーション1:Webhooks
「+Create a new scenario」をクリックすると、丸い「オペレーション」と呼ばれるものが作られます。まずは「Webhooks」を選びます。
次に「Custom Webhook」を選びます。
「Create a webhook」をクリックします。
赤丸数字は未解決の項目がある印で、設定が進めば自然に消えます。
まずは Webhook name を入れます。
何のシナリオで使っているのか後でイメージしやすい名前がおすすめです。(日本語でも大丈夫なはず)
ここでは「FM to slack webhook」とでもしておきます。
他は何も指定せず(この辺が分かりづらい)、Save します。
名前を付けたら、紫色のボタンの「Redetermine data structure」をクリックします。
「Stop」ボタンが出てきて、何かを待っている感じになります。
「ほら、この URL を送っておいでよ、待ってるんだからさ!」
という感じで、誰かが URL を送信してくれるのを Webhooks くんが心待ちにしている状態です。
この URL をコピーしておきます。
URL の送信は当然自分で行いますが、僕は FileMaker のスクリプトを使っちゃいます。
とりあえず仮で良いので「URL から挿入」ステップが一つだけのスクリプトを作ります。
指定するのは「ターゲット」と「URL を指定」の2箇所。
「ターゲット」は変数も使えますここでは「$結果」とでもしておきます。
「URL を指定」、これが Make の Webhooks くんが心待ちにしている URL です。
先ほどコピーしておいた URL を貼り付けます。
スクリプトを保存して実行します。問題なければ URL が送信されます。
Make を見てみると、「Success」に変わりました。受信成功です!
失敗する場合は URL の指定が正しいか、ターゲットが空欄になっていないかを確認してみてください。
うまくいったら Webhooks を Save します。(慣れないとこの辺りが全般的に分かりづらい)
オペレーション2:Slack
Webhooks の右横にある「+」をクリックします。オペレーションが追加され、下の検索窓で「slack」を検索します。
いろいろ出てきますが、ひとまず一番上の「Slack」をクリックします。
そしてまたいろいろ出てきますが、「Create a Massage」を選びます。「メッセージ作成」のアクションです。
「Make さんという人が Slack にメッセージを書き込む」という動きになります。
Connection の 「Add」ボタンから、
Connection Type で「Slack (bot)」を選びます。
Connection name で任意の名前を付けますが「FM Remind to Slack」とでもしておきます。
他は特に指定せず Save します。(この辺もまた分かりづらい)
Save すると、Slack のワークスペースへのサインイン画面が出てきます。
ここで Connection しますよ、つまり認証しますよ、ということです。
正しくログインできれば Slack との接続が確立されます。
Make さんがメッセージを書き込むための許可を Slack 社からもらえた、ということですね。
ここまでくれば、次の3つの設定で選択肢から選べるようになります。(この辺がノーコードと言えます)
・Enter a channel ID or name:
→ Select from the list ( Slack チャンネルをリストから選ぶ)
・Channel type:
→ Public channel (外部公開型のチャンネル)
・Public channel:
→ #fm_remind ( Slack で自分で作ったチャンネル名)
そして「Text」に肝心のメッセージ内容を指定するのですが、JSON が絡むこともあり後回しにします。
Make の一連の中で最難関となる箇所かもしれません。
FM → Make → Slack のデータ連携
いよいよデータの連携を行います。・FileMaker でスクリプト作成
・Make の「Webhooks」で受信
・Make の「Slack」でメッセージ書き込み
・1時間毎に通知がくる
FileMaker でスクリプト作成
FileMaker で正式に使うスクリプトを作成します。ステップは3つのかたまりに分けました。
①通知状態と超過のレコードを抽出
②対象レコードゼロは Slack に通知なし(スクリプト終了)
③Make で Slack に通知( Make にデータ送信)
③のかたまりには、4つのステップがあります。
最後の「URL から挿入」1つだけでも可能ですが、あえて 4ステップにしています。
というのも、ダブルクォーテーションを扱いやすくなる「テキストの挿入」を使いたかったからです。
JSON や cURL オプションはダブルクォーテーションを使います。
FileMaker の計算式ではエスケープ(\)して記述する必要があります。( \"title\" のように)
ダブルクォーテーションの前にバックスラッシュをイチイチ入れないといけないのです。
でも「テキストを挿入」によってエスケープせずに記述することができて便利です。
では 4つのステップを一つずつ見ていきます。
ターゲット「$URL」のテキスト挿入には、Make の Webhooks で指定された URL を入れます。
「テキストを挿入」なので前後のダブルクォーテーションは付けません。( URL の ✱✱✱ には英数字が入ります)
次に $json の変数です。(本題ではないので JSON については詳しく触れません)
今回は通知だけなのでシンプルにします。
キーは「fmtitle」と「fmbody」の 2つ、値にはテスト用に一旦適当に文字を入れておきます。
エスケープは不要なので JSON 中のダブルクォーテーションはそのままの記述です(ラク~)
次に $curl の cURL 設定です。「カール」と発音するようです。
僕は最初しばらくその響きに違和感ばかり感じていました(笑)
ここもエスケープなしのダブルクォーテーションが使えます。
「$json」変数を指定している箇所では、「@」を付けるのが FileMaker 仕様のようです。
最後に「URL から挿入」です。ここでは変数を指定するだけで完了です。
あれ? $json は?
はい、先ほど上でも書きましたが cURL 指定の中で使っています。「@$json」の部分ですね。
なお、「ターゲット」にはグローバル変数「$$get」を指定しました。ここは任意で指定してください。
後ほど実行テストをしますので、スクリプトは保存しておきます。
Make の「Webhooks」で受信
ようやく Make に戻ってきました。あともう少しです。下側にある「Run once」をクリックして Webhooks を受信待ちにします。
(「immediately as data arrives」スイッチで即時応答をオンにしておいて良いかと思います)
FileMaker のスクリプトを実行します。「URL から挿入」によって Make にデータが送られます。
Make で受信できれば「Webhooks」が緑色に変わります。
「?」マークをクリックすると、「fmtitle」と「fmbody」の内容を取得できていることが確認できます。やったぁ!
しっかり JSON を認識してくれました。
Make の「Slack」でメッセージ書き込み
ここまでくれば、あとはラストスパート。Slack オペレーションにある「Text」をクリックすると fmtitle と fmbody が出てきます。
それらをクリックすると Text 欄に入ります。順番を入れ替えたり文字を手入力で加えることもできます。
(この fmtitle と fmbody が出てこないときは JSON をうまく受信できていないことになりますん)
あとは Save して、
一つ前の画面で ON にすると運用開始です。
FileMaker のスクリプトをもう一度実行してみて、iPhone に通知くれば成功です。
当然、iPhone の通知設定で Slack からの通知は ON にしておく必要はありますよ。
そうそう、テストが成功したらスクリプトの「$json」を実際の通知内容に変えます。
僕は「変数を設定」ステップを追加して、Substitute関数で "[[title]]" と "[[body]]" を置換しています。
1時間毎に通知がくる
FileMaker Server のスケジュールで、上で作ったスクリプトを指定して毎時の 59 分に動くように設定します。冒頭でも書きましたが、1分前にすることで猶予ができてギリギリ間に合うことがあるのです。
これにより、iPhone で通知を受取ることができるようになりました。
(通知するものがない場合は、もちろん通知なし)
ハマった点・こだわった点
ハマった点
さもスンナリできたように思うかもしれませんが、案外ハマっております。。。特に Make ではずいぶんハマりました。
・名前だけの入力で Save してもいいのか、他にも入力が必要なのかが分かりづらかった。
・Slack のオペレーションで、Text 内容をどう受け取っていいか分からなかった。
・Webhooks で 正しく JSON データが受取れているのか分からなかった。 etc......
JSON データの受取りには相当な回数で失敗しています。
1度失敗すると、「あれ? もう一つオペレーションを挟むのかな?」などと余計なことを考え始めます。
ゴールと違う道へ逸れるので、そこでまた迷宮入りしてしまうのです。
ノーコードツールだからといって、スンナリいくわけではありません。(スンナリいくこともありますが)
こだわった点
超過分も拾える
超過してもその後 2 回は通知が来るようにしたことです。いくら iPhone に通知がきても、1回の通知だと見逃すことはありますよね。
それに、超過したことを思い出すか思い出さないかでは、後のフォローで重要になることも多々あります。
定期的なスケジュールにも対応
毎日10時、毎月15日12時、といった定期通知も対応しました。一般的なリマインダーアプリには必ずついている機能ではあります。
「独自リマインダーには付いて無い」というのは悔しいので機能を追加しました。
独自リマインダーの何が良かったか
予定日時とリマインド日時を分けたこと。
会議が 14時開始なら、リマインドは 13時にしたいことがありますよね。予定日時とリマインド日時が別なので使い勝手が良いように感じます。
とにかく通知だけを目的とする。
「うっかり忘れ防止」に特化することで、カレンダーアプリとうまく棲み分けできています。なんなら、用済みのスケジュールに上書きして使い回すことも。(レコードが一定量のまま増えない)
カレンダーアプリのほうは記録として残すスケジュール管理に特化しています。
パッと通知リストを見ることができる。
通知に特化したスケジュールリストを一覧で見られるので頭の中をクリアにできます。独自の絞り込みができる。
FileMaker なので自由に検索を設定することができます。通知状態だけ、待機中だけ、など一般のアプリには無い自分だけの見方ができます。
自分で作った満足感がある。
これが一番かもしれませんね(笑)「年」4桁が意外と邪魔だったので小さくしたり、ステータス別に色を付けたり。
自分の思い通りに作れて、満足感と達成感があります。
まとめ
流れを見る限りでは簡単そうに見えますが、意外とつまづくポイントは多かったです。
JSON とか Webhook といった仕組みに慣れていない場合は、時間だけが過ぎるような感覚に陥ることがあるかもしれません。
弊社の対面サポートであれば、2回 ~ 3回程度という感じです。
JSON を学んで頂きながらの場合はもっと回数はかさむかと思います。
なお、対面サポートと言っても、この場合はむしろ「一緒に作っていく」感じにはなるかと思います。
単発の対面サポート詳細はこちら▶
冒頭に書いたように Claris FileMaker Connect でも出来ますし、国産アプリの Chatwork でも同じようなことができるかと思います。
また、応用として Google フォームの内容をスプレッドシート経由で FileMaker に取り込む仕組みも Make を使ってできるかと思います。
そういったことを記事にしてほしい、などのリクエストがあればお送りください。
こちらからどうぞ▶ 記事化リクエストフォーム[↗]
今日も良い一日を♪
Blogger Comment
Facebook Comment