SlackGetコンポーネントを使用すると、Slackに投稿されたメッセージを検索して、メッセージデータとメタデータをフローに取り込むことができます。SlackGetコンポーネントを他のコンポーネントと組み合わせると、SlackのデータをダッシュボードやBIツール、およびその他のコラボレーションツールと連携することが可能です。
この記事では、Slackワークスペースに接続し、一般的なタスクを実行する方法を説明します。
[準備]Slackコネクションの作成
Slackのチャンネルやダイレクトメッセージに接続するためには、事前にSlackコネクションを作成しておく必要があります。一度作成すれば、それを複数の箇所で再利用できます。
フローデザイナーの左側のコネクションペインでSlackコネクションを作成できます。
Slackワークスペースに接続する方法については、Slackコネクションの作成を参照してください。
[準備]チャンネルにSlackアプリを追加する
SlackGetコンポーネントを実行するためには、コネクション作成時にあわせて作成したSlack内の「アプリ」をbot(ボット)と呼ばれる仮想のアカウントとしてチャンネルに追加する必要があります。ここでは、「webinar-planners」アプリを「#webinar-plannings」チャンネルにbotとして追加する手順を説明します。
-
Slackで、サイドバーのAppセクションから、botとして利用するアプリ(webinar-planners)を右クリックして「アプリの詳細を表示する」をクリックします。
-
表示されているダイアログボックスの「チャンネルにこのアプリを追加する」をクリックします。
-
チャンネル(#webinar-planning)を選択し、追加をクリックします。
これでチャンネルへのbot追加は完了です。
SlackGetコンポーネントの配置
SlackGetコンポーネントをワークスペースに配置するには、パレットの「ソーシャル」タブを開き、左から6番目の「Slackのメッセージを取得します」というツールチップが表示されるアイコンをワークスペースにドラッグ&ドロップします。
そしてワークスペース上のSlackGetコンポーネントのアイコンをダブルクリックしてください。すると「コネクション」ウインドウが表示されますので、使用するコネクションを選択し、OKボタンを押してください。これでコネクションの選択は完了です。
HINT:Slackコネクションをワークスペースにドロップし、表示されるリストからSlackGetコンポーネントを選択するという配置方法もあります。この方法を使うと、コンポーネントの配置とコネクションの選択をより素早く行うことができます。
すべてのメッセージを取得する
デフォルトの設定でSlackGetコンポーネントを実行すると、コネクションで指定したチャンネルからすべてのメッセージを取得できます。これには、すべてのスレッド内のリプライも含まれます。
フローを実行すると、レコードストリームで指定したチャンネルのメッセージとそのスレッド内のリプライを出力します。メッセージテキストとメッセージのメタデータはレコードフィールドとして出力されます。
出力の順番は最新のメッセージから始まり、そのスレッドのリプライに続いて、チャンネル内のメッセージをさかのぼる順番となっています。
type | message |
UserId | U050JKM217V |
BotId | |
Text | movie_camera:No-Code Camp最終日、2022年5月2日にDXに関してボブさんとアリスさんにインタビューしてきました。 |
Timestamp | 1680055519.683669 |
Hidden | false |
ParentUserId | |
ThreadTimestamp | 1657900008.876129 |
先週のメッセージだけを取得する
「これより後」「これより前」プロパティで設定した期間内のメッセージをフィルタリングすることができます。今週のメッセージを取得するには、「これより前」プロパティの隣にあるブラウズボタンをクリックし、「今日(T)」ボタンをクリックします。次に、「これより後」プロパティで、カレンダーで7日前を選択します。
コンポーネントのプロパティは以下のようになります。
フローを実行すると、コンポーネントは最新のメッセージから始まり、先週チャンネルに送信されたすべてのメッセージを順に出力します。出力には、最新のメッセージとそのスレッド内のリプライ、および先週チャンネルに送信されたメッセージが含まれます。
スレッドを開始する親レコードには、TimestampフィールドとThreadTimestampフィールドの両方があり、同じ値が設定されています。また、スレッドのすべての返信は、ThreadTimestampフィールドに同じ値が設定されており、親レコードと同じ値です。
type | message |
UserId | U050JKM217V |
BotId | |
Text | movie_camera:No-Code Camp最終日、2022年5月2日にDXに関してボブさんとアリスさんにインタビューしてきました。 |
Timestamp | 1657900008.876129 |
Hidden | false |
ParentUserId | |
ThreadTimestamp | 1657900008.876129 |
type | message |
UserId | U050JKM217V |
BotId | |
Text | 10分後にウェビナー会議が開始します. こちらから参加してください。 <https://meet.google.com/abc-defg-hij> |
Timestamp | 1658240859.470639 |
Hidden | false |
ParentUserId | U03NW561QNR |
ThreadTimestamp | 1657900008.876129 |
type | message |
UserId | U050JKM217V |
BotId | |
Text | 期限:2022年9月14日 会社資産をすべて登録してください。 |
Timestamp | 1658285426.382899 |
Hidden | false |
ParentUserId | U03NW561QNR |
ThreadTimestamp | 1657900008.876129 |
type | message |
UserId | U050JKM217V |
BotId | |
Text | No-Code Campの写真はBoxにありますか? |
Timestamp | 1657897736.303909 |
Hidden | false |
ParentUserId | |
ThreadTimestamp |
メッセージと返信の制限
チャンネルから取得したい最大メッセージ数を指定する場合、「取得するメッセージ件数」プロパティを設定します。チャンネルから最新のメッセージとそのスレッドのリプライを取得するには、「取得するメッセージ件数」プロパティに1を入力します。
フローを実行すると、コンポーネントはチャンネルから最新のメッセージとそのスレッド内のリプライのみ出力します。
type | message |
UserId | U050JKM217V |
BotId | |
Text | movie_camera:No-Code Camp最終日、2022年5月2日にDXに関してボブさんとアリスさんにインタビューしてきました。 |
Timestamp | 1657900008.876129 |
Hidden | false |
ParentUserId | |
ThreadTimestamp | 1657900008.876129 |
type | message |
UserId | U050JKM217V |
BotId | |
Text | 10分後にウェビナー会議が開始します. こちらから参加してください。 <https://meet.google.com/abc-defg-hij> |
Timestamp | 1658240859.470639 |
Hidden | false |
ParentUserId | U03NW561QNR |
ThreadTimestamp | 1657900008.876129 |
type | message |
UserId | U050JKM217V |
BotId | |
Text | 期限:2022年9月14日 会社資産をすべて登録してください。 |
Timestamp | 1658285426.382899 |
Hidden | false |
ParentUserId | U03NW561QNR |
ThreadTimestamp | 1657900008.876129 |
「取得する返信件数」プロパティを設定して、取得したいスレッド内のリプライ数を制限できます。スレッドの最初の返信のみを取得するには、「取得する返信件数」に1を入力します。
コンポーネントのプロパティは次のようになります。
フローを実行すると、コンポーネントは最新のメッセージとそのスレッドの最初のリプライを取得します。
type | message |
UserId | U050JKM217V |
BotId | |
Text | movie_camera:No-Code Camp最終日、2022年5月2日にDXに関してボブさんとアリスさんにインタビューしてきました。 |
Timestamp | 1657900008.876129 |
Hidden | false |
ParentUserId | |
ThreadTimestamp | 1657900008.876129 |
type | message |
UserId | U050JKM217V |
BotId | |
Text | 10分後にウェビナー会議が開始します. こちらから参加してください。 <https://meet.google.com/abc-defg-hij> |
Timestamp | 1658199863.851109 |
Hidden | false |
ParentUserId | U03NW561QNR |
ThreadTimestamp | 1657900008.876129 |
これで、チャンネル、または日時範囲を指定したメッセージデータの取得ができるようになります。
次のステップ
UserIdなどのメッセージフィールドでフィルタリングするために、レコードタブからRecordFilterコンポーネントを追加します。また、MapperコンポーネントとFilePutコンポーネントを追加し、SlackメッセージのデータをCSV形式で保存することで、ダッシュボードやBIツールなどで取得したデータを簡単に利用できるようになります。
また、SlackGetコンポーネントとSlackDeleteコンポーネントをペアで使用して、メッセージを削除することもできます。