
Dify にはワークフローという仕組みがあり、作業の自動化に特化したアプリケーションです。
ボタンを押したり、定期的に実行したい場合に利用します。
1. LINE にクーポンを通知してくれる Bot
Dify のワークフローを使って、次の仕組みをつくります。
- ビックカメラのWebサイトにアクセスしてクーポン情報を取得し、
- クーポン情報を整理して、
- LINE に通知を行う

完成系のフローはこちらです。

2. 実装
2-1. 準備①
Dify のワークフローの準備
- Dify でアカウントを作成しワークフローを準備します
※アカウント作成方法は割愛します

2-2. 準備②
LINE 公式アカウントの準備

LINE Developers から以下を用意します。
※手順は割愛します
- 公式ラインのアカウント
- ユーザーID
- チャネルアクセストークン
準備ができたら、Dify に戻りノードをつないでいきます。

環境変数の設定
[ENV]
ブロックから以下の2つの環境変数を設定してください。
-
ユーザーID
- タイプ:Secret
- 名前:to
- 値:2-2で取得したLINEのユーザーIDの値
-
アクセストークン
- タイプ:Secret
- 名前:line_channel_access_token
- 値:LINEのチャネルアクセストークンの値

2-3. Scrape ノード
Firecrawl の登録をし、API key を取得しておきます。
※取得方法は割愛します

Dify のマーケットプレイスから Firecrawl
をインストールし認証します。
Dify に戻り、FireCrawlの認証画面に API key
を入れてください。URLは入れなくてOKです。

SCRAPEノード
が選択できるようになるので追加します。

Scrapeノードの設定
- URL to scrape: データを取得したいサイトのURL
スクレイピングは Web サイトの利用規約を確認してから実施しましょう
2-4. LLM ノードを追加
スクレイピング結果から必要な文字を抽出するために、生成AIを使います!
これを簡単に実装できるのは Dify の魅力です。
Scrapeノード
、LLMノード
と繋いでください。

LLM ノードの設定
- モデル:
GPT-4o-mini
- SYSTEM:
ビックカメラのクーポン情報の一覧のテキストが送られてきます。 - タイトル - 画像URL - 商品リンクURL - 有効期限 を抽出してリストアップしてください。 ## 出力 - 出力は最初の2件のクーポンだけ出力してください。 - マークダウン形式にせず、プレーンなテキストで出力してください。
- USER:
SCRAPE
>{x}text
USER
はメッセージの追加
で編集できます
なお、USER に入れるのは変数で、変数の選択は/
を押すことで候補が出現します。
2-5. コードノードと HTTP リクエストを追加
同様に LLM ノードの後ろにコードノード
と HTTP リクエストノード
を追加します。
コードノードの設定の設定
生成AIがつくったテキストを受け取り、LINE で送れるオブジェクトに整形します。
この部分も LLM ノードのプロンプトで整形してみるのも良いかもしれません。
-
入力変数を追加
- 変数名:
sendCoupon
- 変数を設定:
LLM
>{x}text
- 変数名:
-
JavaScript
function main({to, sendCoupon}) { const messageObj = { "to": to, "messages":[ { "type":"text", "text": sendCoupon } ] }; return {result: JSON.stringify(messageObj)}; }
LLM で生成した内容を sendCoupon
という名前の変数にして、LINE で送るメッセージとして扱っています。
HTTP リクエストの設定の設定の設定
- API
- POST
https://api.line.me/v2/bot/message/push
- ヘッダー
- キー:
Authorization
、値:BearerENV
>line_channel_access_token
- キー:
Content-Type
、値:application/json
- キー:
- ボディ
- JSON、{x}result

2-6. 全てのノードをつなげる
最後にこれまでのノードをつなげていきます。LLM ノード
の後ろにコードノード
、HTTPリクエスト
と続くようにします。

最後に、終了
のノードをつけましょう。
2-7. 実行
最後に右上の実行を押すと処理がスタートし、 LINE に情報が通知されます。

成功すると通知が送られます。

3. 自動投稿
API アクセスから API 経由でこのワークフローを実行させることができます。
API はこちらから取得できます。

Dify スケジュールアシスタントというツールを使うことができます。
具体的には GitHub Actions 利用します。
API の使い方については詳しく記載しませんが、このようにAPI 経由で定期実行するため、GAS のようなサービスでも実装可能です。
5. まとめ
これができれば、LINE 以外に Slack や Discord などに送ることも簡単です。