kintoneGeeks blog

kintoneに関連する情報を発信しています

【kintone×Make】ノーコード連携のTips

はじめに

こんにちは!サイボウズ Developer Pioneer チームです。

先日、【kintone×Make×LINE】身近な人の誕生日を自動で知らせるLINE Botを作成 - kintoneGeeks blog の記事で、kintoneとMakeで簡単にLINEBotを作成する手順と「kintoneのデータを1件だけ返信する」シナリオを紹介しました。

この記事では、前回のカスタマイズでは手が届かなかった課題の解消や、躓きやすいポイントのTipsをご紹介します。

kintoneで取得した複数のデータをLINEで返信したい!

課題1:1件のデータしかLINEで返信できない

前回のカスタマイズでは「kintoneのデータを1件だけ返信する」ことには成功しますが、kintone側に同じ日付の誕生日データがある場合は最初の1件しかデータを返信することができません。

課題1全体像
課題1全体像

動作検証実行後に、LINEの「Send a Reply Message」モジュールの右上に注意マーク(⚠️)が表示されています。このマークをクリックするとエラー内容を確認できます。

LINEエラー内容
LINEエラー内容

エラーの内容は、「[400] Invalid reply token」です。 「使用済みのLINEのReply Tokenを使って応答メッセージを送ろうとしたため、2つ目のメッセージが送信できませんでした」といったエラーであることがわかります。

参考資料:エラーメッセージ Invalid reply token

しかし、Reply TokenはLINEのWatch Eventsから得られる値であり、1つしか取得することができません。そのため、kintoneの複数データを返信する際は、返信メッセージをまとめてから、1つのメッセージで返信する必要があります。

解決策:返信メッセージをまとめる

kintoneのレコード操作の「Search Records」モジュールで、複数のレコード結果を取得した際は、Makeで用意されたモジュールを使用して、取得したデータを加工する必要があります。複数のデータをまとめる際に登場するのが、「Text aggregator」モジュールです。

Text aggregator モジュールとは?

Aggregators Aggregator is a type of module that accumulates multiple bundles into one single bundle.

Types of modules Help Docs | Integromat Help Center

Aggregatorsモジュールは、複数のデータを1つにまとめてくれる特徴を持つモジュールです。 その中でもText aggregatorモジュールは、複数のデータ(配列や複数Bundle)を1つの文字列に変換してくれるモジュールです。

text-aggregator-module
text-aggregator-module

全体像

kintoneとLINEモジュールの間に、ToolsのText aggregator モジュールを設定します。

全体像
全体像

設定項目

アドバンス設定を表示すると、細かい設定が可能です。

項目 設定する値 メモ
Source Module kintoneで取得した複数レコード
Row separator New row この設定をすると、
1行ずつまとめてくれる
text Source Moduleから取得したい項目

設定項目
設定項目

返信メッセージを修正する

Text aggregator モジュールでまとめた文字列を、LINEの返信メッセージに設定します。

返信メッセージを修正
返信メッセージを修正

動作確認

kintoneで複数取得したデータをText aggregator モジュールを使って1つの文字列に変換し、LINEのSend a ReplyMessageモジュールに渡すことで、複数データをLINEで送信することができました。

make連携.gif

覚えておくと便利な2種類のモジュール

そもそもモジュールとは?

一般的にモジュールとは部品を意味します。 またIT用語のモジュールとは、まとまった機能を持つパッケージのことです。 (主にプログラミングでは、まとまった機能を持つコードのことを指します)

Makeで使用できるモジュールは5種類に分類できます。

Types of modules Integromat distinguishes five types of modules: Actions, Searches, Triggers, Aggregators and Iterators . The two latter ones are intended for advanced scenarios.

Types of modules Help Docs | Integromat Help Center

その中でも、特に重要な2つのモジュールを紹介します。

モジュール 説明
Aggregator 1つのデータ(Bundle)から複数のデータ(配列、複数Bundleなど)に
変換するモジュール
Iterator 複数のデータ(配列や複数Bundle)から
1つのデータ(Bundle)に変換するモジュール

先程紹介したAggregatorの対になるのがIteratorです。

kintoneの取得データ順を変更したい!

課題2:kintoneデータを降順でしか取得できない

kintoneの Search Records モジュールの結果は、デフォルトで降順になっています。

デフォルト降順
デフォルト降順

しかし、kintoneで取得した値を、昇順に変更したい時がありますよね。 そんな時は、Query 部分に続けて order by を記載すると順序の入れ替えが可能です。

解決策:順序を並び替えるQueryを設定しよう

設定方法

kintoneモジュールのQuery部分に、

日付 = YESTERDAY() order by レコード番号 asc

のように、順序を並べ替えるクエリを追記します。

query
query

これで昇順でデータを取得することができます!


  • 昇順(asc): 1,2,3,..n
  • 降順(desc): n,...,3,2,1

動作確認

昇順に並べ替えることが出来ました。

昇順
昇順

Make公式ドキュメント

おわりに

いかがでしたか。今回は、ちょっとしたMake連携のTipsをご紹介しました。 今回のTipsは気が付くと簡単に設定できるものが多かったのですが、公式ドキュメントにも明記されていない部分があり地味に分かりにくい部分がありました。この記事が少しでも参考になれば嬉しいです。