
Amazon Quick の Flow で Slack コネクタ(カスタム OAuth)を使ってチャンネルにメッセージを送信してみた
いわさです。
Amazon Quick にはサードパーティアプリケーションとの連携を可能にするアクションコネクタという機能があります。
Slack、Microsoft Teams、Salesforce など多数の外部サービスと接続でき、Amazon Quick の各機能から直接アクションを実行できます。
また、Amazon Quick には「フロー」と「オートメーション」という2つのワークフロー自動化機能があります。
フローはユーザーが自然言語やビジュアルエディターで作成する個人・チーム向けのワークフローで、オートメーションは管理者が構築するエンタープライズ向けの自動化です。
今回 Slack コネクタを使ってフローあるいはオートメーションからメッセージを送信してみたいと思ったのですが、公式ドキュメントの互換性マトリクスを確認したところ、Slack コネクタは Chat Agents / Flows / Dashboard Visuals / Companions には対応していますが、オートメーションには非対応とのことでした。
Slack 連携で自動化ワークフローを組みたい場合は、オートメーションではなくフローを使う必要があります。
なお、Slack コネクタの認証方法は以下の3種類が用意されています。
- Default OAuth app: AWS が管理する OAuth アプリケーションを利用。追加の認証情報は不要
- Custom OAuth app: 自前の Slack アプリを作成して OAuth 設定を完全に制御
- Bearer Token: Slack の Bot トークンを使用
今回は Default OAuth app ではうまく接続できなかったため、Custom OAuth app を使って接続しました。
こちらを確認してみたので紹介します。
デフォルト認証で試したらエラーになった
最初に Default OAuth app で試してみたのですが、Slack 側の認証画面で以下のエラーが表示されてインストールに失敗しました。

「承認されていない権限がリクエストされました」とのことで、channels:write.invites、mpim:write.topic、groups:write.invites、search:read が問題になっているようです。
アプリインストールしてみたんですけど、そのあたりの権限足りてないっぽいんだよな。これデフォルト OAuth でいけた人います・・・?

ということで、Custom OAuth app に切り替えて進めます。
Slack API でアプリを作成する
Custom OAuth app を使うには、まず Slack API ダッシュボードでアプリを作成する必要があります。
Slack API ダッシュボードにアクセスし、「Create New App」を選択します。

「From scratch」を選択し、アプリ名とワークスペースを指定して作成します。
今回は hoge-iwasa-quick という名前で作成しました。

リダイレクト URL の設定
作成したアプリの「OAuth & Permissions」ページで、Redirect URLs に Amazon Quick のコールバック URL を設定します。
東京リージョンの場合は以下の URL になります。
https://ap-northeast-1.quicksight.aws.amazon.com/sn/oauthcallback
User Token Scopes の設定
同じ「OAuth & Permissions」ページの Scopes セクションで、User Token Scopes を追加します。
公式ドキュメントによると、Custom OAuth app の場合は Bot Token Scopes ではなく User Token Scopes にスコープを追加するとのことです。
For Custom OAuth app, add them as User Token Scopes.
今回は公式ドキュメントに記載されている推奨スコープを一通り追加しました。
calls:read、calls:write、channels:history、channels:read、channels:write、chat:write、search:read など多数のスコープが含まれます。

Amazon Quick でコネクタを作成する
Slack アプリの準備ができたら、Amazon Quick 側でコネクタを作成します。
Amazon Quick コンソールの左メニューから「コネクタ」を選択します。
「Available」タブに Slack コネクタが表示されています。

今回は Custom OAuth app を使いたいので、「Create for your team」タブから作成します。

なお、既に Slack コネクタが存在する場合は「A Slack connector is already enabled」というダイアログが表示されます。
既存のコネクタを使う場合は「Try it」を、新しく作成する場合は「No, create new」を選択します。

接続情報の入力
Auth configuration で「Custom OAuth app」を選択し、以下の情報を入力します。

入力する項目は以下の通りです。
- ベース URL:
https://slack.com/api - クライアント ID: Slack アプリの Basic Information から取得した Client ID
- クライアントシークレット: 同じく Client Secret
- トークン URL:
https://slack.com/api/oauth.v2.access - 認証 URL:
https://slack.com/oauth/v2/authorize - リダイレクト URL: 自動入力される Amazon Quick のコールバック URL

Slack 認証の承認
「次へ」を押すと Slack の OAuth 認証画面が表示されます。
アプリに許可する権限を確認して「Allow」を選択します。

ツールと権限の確認
認証が成功すると、利用可能なツール(アクション)の一覧が表示されます。
Write Operations として Create conversation、Create reminder、Invite users、Send message など 14 個のアクションが確認できます。

公開設定
最後に、コネクタを誰が使えるようにするかを設定します。
組織全体に公開するか、特定のグループに限定するかを選択できます。

Publish を押すとコネクタの作成が完了です。

サインイン
コネクタが作成されたら、コネクタの詳細画面で「サインイン」を実行します。
公式ドキュメントによると、Default OAuth app や Custom OAuth app を使うコネクタはサインインしないとアクションが利用できないとのこと。
For connectors that use Default OAuth app or Custom OAuth app authentication, you must sign in to the service before you can use its actions.
作成直後は「サインインしていません」と表示されていますが、サインインすると「サインインしました」に変わり、Enabled tools の一覧が確認できるようになります。


Read/Write 合わせて 22 個のアクションが利用可能になっています。
Flow でメッセージを送信してみる
コネクタが準備できたので、実際に Flow を作ってメッセージを送信してみます。
今回は「サンプル Excel データを生成して Slack チャンネルに送信する」というフローを作成しました。
フローのステップは以下の2つです。
- サンプル Excel データを生成(AI レスポンスステップ)
- Slack チャンネルへ送信(アプリケーションアクションステップ)
アプリケーションアクションのステップでは、コネクタに iwasa-personal-slack を選択し、タイプに「Send Message to Channel」を指定しています。

実行結果
フローを実行すると、まず AI がサンプルの売上データを表形式で生成し、続いて Slack の「Send Message to Channel」アクションの確認画面が表示されます。
送信先チャンネル、メッセージ内容を確認して「Send message」を押します。

なお、ファイル添付もオプションとして表示されていますが、対応ファイル形式は .txt、.png、.jpg、.doc、.docx、.pdf、.xls、.xlsx とのこと。
Slack 側での受信確認
Slack チャンネルを確認すると、メッセージが届いていました。

Excel ファイルの添付はサポートされていなかったようで、エラーメッセージとともにデータがテキスト形式で代替送信されていますね。
ファイルのアップロード・添付機能については現時点では制約があるみたいです。
さいごに
本日は Amazon Quick の Flow で Slack コネクタ(Custom OAuth app)を使ってチャンネルにメッセージを送信する方法を確認してみました。
Default OAuth app だとワークスペースの権限設定によってはうまくいかないケースがあるようで、Custom OAuth app で自前の Slack アプリを用意するのが確実な方法だと思います。
Slack API ダッシュボードでのアプリ作成と OAuth 設定は少し手間がかかりますが、一度設定してしまえば Flow から手軽にメッセージ送信できるのは便利ですね。
ファイル添付が期待どおりに動かなかった点は気になりますが、テキストメッセージの送信は問題なく動作しました。
Flow の中で AI が生成したデータをそのまま Slack に流すようなユースケースは色々ありそうなので、活用の幅は広そうです。








