【NoCode 2020】 IFTTT Pro の新機能 3つ（クエリー・フィルター・複数のアクションの実行）の内容をチェックしてみる！

この記事は、[NoCode Advent Calendar 2020](https://qiita.com/advent-calendar/2020/nocode) の 5日目の記事です。

当初は、[スマートスピーカー Advent Calendar 2020](https://qiita.com/advent-calendar/2020/smart-speaker) の 5日目の記事のネタの一部として [IFTTT Pro](https://ifttt.com/pro) の説明を書いたりしていたのですが、分量がけっこう多くなったので内容を分割して、この記事が出来上がりました。

そして、[NoCode Advent Calendar 2020](https://qiita.com/advent-calendar/2020/nocode) の 5日目が空いていたようだったので、急遽、登録をさせていただきました。

## はじめに

いろいろと話題になった、[IFTTT](https://ifttt.com/) の[有償プランと無償プランの制限の話題](https://ifttt.com/explore/introducing_ifttt_pro)。

![Introducing_IFTTT_Pro_-_IFTTT.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/56ed60f5-4c18-4fa3-2642-ec3629e1a6fc.jpeg)

自分の場合はハンズオンや試作でお世話になっていたものの、常時稼働させていたアプレットは実は 1つだけという状況だったので、そういう意味では無理に有償プランである IFTTT Pro にしなくても困らない状況ではありました。

ただ、「Pro版のみの新機能も！」という話も気になり、最終的には IFTTT Pro に登録。
しかし、「新機能を試す」というタスクが積まれてから、そのまま時間が過ぎていき・・・。

そんな中でアドベントカレンダーの時期である 12月になったので、これをネタに記事を書くことにしてみました。

## IFTTT Pro の新機能
[有償プランである IFTTT Pro の利用可能な機能](https://ifttt.com/plans)を見ると、利用可能な機能という観点では、無償版と比べて以下のような差異があります。

- queries
- conditional logic
- multiple actions

![Plans_-_IFTTT.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/733a919f-59f4-734c-e728-cf2bea42f443.jpeg)

この3つの内容について、軽く見ていきます。
なお、その他の有償プラン・無償プランのサイトして書いてある以下は、この記事では説明を省きます。

- 数量無制限のアプレット作成
- アプレット実行処理が無償版よりも早くなる
- カスタマーサポートが利用可能

### クエリー
クエリーに関しては、公式に以下のページがありました。

●What is a query? – IFTTT Help Center
　https://help.ifttt.com/hc/en-us/articles/360053502173-What-is-a-query-

冒頭には、「A query is a way to request additional data if the trigger doesn’t provide it.」と書かれています。トリガー単体で得られない別の情報を付与する、といった意味合いでしょうか。

また、その下では「フィルター」との組み合わせの話が出たあと、以下の画像の内容が書かれています。
フィルターとの組み合わせは必須ではないよ、という記載です。

![What_is_a_query__–_IFTTT_Help_Center.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/7cddf990-3997-7ece-52ca-d0ff844b90b5.jpeg)

内容としては、以下のような活用ができるものだと書いてます。

トリガー： ボタン押下（ボタンウィジェットによる）
クエリー： 今の天気
アクション： 今の天気の情報をメールで送る

トリガー単体でアクションを実行する流れだと、「ボタンを押したら、既定の内容のメールが送られる」という内容になるはずが、メールの中に「今の天気」という固定ではない情報を加えられる、という話のようです。

### フィルター（conditional logic）
フィルターについての説明は、公式に以下の内容が書かれていました。

●Building with filter code – IFTTT Help Center
　https://help.ifttt.com/hc/en-us/articles/360052451954

ページの冒頭には、以下の内容が書かれています。
ざっと読んでいくと、説明の中で JavaScript のコード（※ 「ES5 っぽいけど、そんなに技術的ではないよ！」と書かれてる）を使う必要がある、と書かれているようです。

![Building_with_filter_code_–_IFTTT_Help_Center.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/119f6deb-593b-10d0-f488-0ec29533d66b.jpeg)

さらに読み進めていきます。
できることが 2つある、と書かれており、「アクションをスキップすること」と「フィールドの値を変更できる」という内容のようです。

![Building_with_filter_code_–_IFTTT_Help_Center2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/1e167736-87eb-b393-8fad-a7ef40e5f304.jpeg)

そして、その下の事例を見ると、JavaScript のようなコードが登場します。
これは、アプレットを特定の時間帯でのみ実行する場合の例とのことです。コードの部分を見た感じでは、「23時から翌朝9時までの時間帯は、メールの送信をしないようにする」というもののようです。

![Building_with_filter_code_–_IFTTT_Help_Center3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/5ddbef6e-54b4-0f83-5561-e9fba38ea34e.jpeg)

その下には、「1週間のうちの特定の日を指定する」という話や、トリガーの中の値を条件に使うという内容（下記の内容）が出てきました。下記の内容は、天気の気温の情報をもとに、条件付けをする内容のようです。

![Building_with_filter_code_–_IFTTT_Help_Center4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/782c82f3-f165-ae2f-b00b-343e1a9c4689.jpeg)

そして、最後には「Googleカレンダーのイベントの記載内容に含まれるキーワードを活用する事例」が出てきました。

![Building_with_filter_code_–_IFTTT_Help_Center5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50868/222c0af4-6e63-6b34-dfe0-2103b6e43e29.jpeg)

いくつかの事例を見ていくだけでも、便利に使えそうな感じがしました。

なお、以下のページを見ると、現時点ではフィルターはモバイル用アプリから編集はできないそうです。
ただ、将来的にはできるようになりそうな感じの記載もありました。

●Can I add/edit filter code in the IFTTT mobile apps? – IFTTT Help Center
　https://help.ifttt.com/hc/en-us/articles/360053950273-Can-I-add-edit-filter-code-in-the-IFTTT-mobile-apps-

### 上記のクエリーとフィルターの組み合わせ
クエリーとフィルターを活用すると何ができるか、公式に事例についての記載がありました。
いくつかの事例が掲載されているようなので、別の機会に見てみようと思います。

●Example Applets using queries and filter code – IFTTT Help Center
　https://help.ifttt.com/hc/en-us/articles/360053657913-Example-Applets-using-queries-and-filter-code

### 複数のアクションの実行（multiple actions）
こちらは、あまり説明が必要なさそうですが、あるトリガーに対して実行できるアクションが複数設定できる、というものです。どんなアクションを組み合わせると便利そうか、考えてみるのも楽しそうです！

## おわりに
今回、IFTTT Pro の新機能 3つ（クエリー・フィルター・複数のアクションの実行）について、公式の情報を見てみました。

実際に使ってみる部分は、[スマートスピーカー Advent Calendar 2020](https://qiita.com/advent-calendar/2020/smart-speaker) の 5日目の記事や、その後にも書く予定の別の記事にて！

### 追記
実際に使ってみた内容を以下の記事にしました。

●【スマートスピーカー 2020】 IFTTT で Alexa・Google Assistant を利用して IFTTT Pro の新機能（クエリー・フィルター）との組み合わせも試す - Qiita
　https://qiita.com/youtoy/items/ab6747622d137fcadead

### 追記2
本記事の内容と、それに少し説明を加えた内容で LT登壇をしました。
また、引き続き IFTTT Pro の新機能活用を模索していて、1つ記事を書きました。

- [IFTTT Pro の新機能（クエリー・フィルター）の話と M5Stack CoreInk の話 / IoTLT vol.70 - Speaker Deck](https://speakerdeck.com/you/iotlt-vol-dot-70)
- [IFTTT Pro の新機能活用を模索： Googleカレンダー連携をクエリーで使う方向性（まだ模索中） - Qiita](https://qiita.com/youtoy/items/8439d987ec07aadf1329)