novu-dashboard-workflows について
Novu Dashboardのワークフローで、手動またはNovu MCP経由でステップ内容を作成・編集するためのガイドです。複数のステップ種別を扱い、変数やエディター構造、条件の適切な扱い方を示します。
主な機能
- 01メール、通知、HTTPステップのルール
- 02Liquid変数によるパーソナライズ
- 03HTTPレスポンススキーマの順守
- 04エディター種別と構造の維持
- 05意図に応じた条件の統合・置換
活用シーン
- 01Dashboardワークフローのメール本文編集
- 02通知の遅延やダイジェスト時間の変更
- 03HTTPリクエストのヘッダーや本文の追加
- 04ステップ条件の更新
MCP 対応
create_workflowやupdate_workflow_stepなど、Novu MCPでワークフローのステップ内容を作成・更新する操作をガイドします。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ novuhq/ skills --skill novu-dashboard-workflowsインストール後、Claude Code で/novu-dashboard-workflowsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/chat-step.mddelay-step.mddigest-step.mdemail-step.mdhttp-request-step.mdin-app-step.mdpush-step.mdsms-step.mdstep-conditions.mdthrottle-step.md詳細
ダッシュボードのワークフロー
Novu ダッシュボード上のワークフローで、ステップのコンテンツ(件名、本文、editorType、ヘッダー、本文、条件)を作成する際のルールです。手動で編集する場合も、Novu MCP 経由で編集する場合も適用されます。
@novu/frameworkを使ってコードで作成していますか?このスキルはスキップしてください。Framework SDK の型とヘルパーがこれらの制約を組み込んでいます。ワークフローの構成(チャンネル、重要度、クリティカル、ダイジェスト、テンプレート)を決める必要がありますか?まずは
design-workflow/から始めて、その後ここに戻ってステップのコンテンツを入力してください。
このスキルを使う場面
ダッシュボード/MCP のステップの設定項目を記述または編集する場合に使用してください。
- 「このステップのメールの件名と本文を設定する」
- 「アプリ内通知の文面を更新する」
- 「この HTTP Request ステップにヘッダーを追加する」
- 「ダイジェストの期間を 1 時間に変更する」
- 「サブスクライバーがオフラインの場合、このステップをスキップする」(ステップ条件)
- ステップのコンテンツを書き込む Novu MCP ツール呼び出し(
create_workflow、update_workflow_stepなど)
ステップコンテンツのガイドライン
これらのルールはすべてのステップタイプに適用されます。
- 設定値でパーソナライズするには、Liquid 変数を使用してください。変数は二重波括弧
{{と}}で囲む必要があります。例:{{ subscriber.firstName }}、{{ payload.* }}。 - 例外: Block Editor(
editorType: "block")のノード属性では、波括弧を使用しないでください。{{ payload.actionUrl }}ではなく、payload.actionUrlのように変数名だけを記述してください。Block Editor のルール全体については、references/email-step.mdを参照してください。 - HTTP Request ステップ以降のステップでレスポンスデータを参照するには、
{{ steps.<http-step-id>.<property> }}を使用してください。使用できるのは、その HTTP ステップのresponseBodySchemaで定義されたプロパティのみです。任意のレスポンスフィールドを作り出してはいけません。例:HTTP ステップfetch-userのresponseBodySchemaでnameとemailが定義されている場合は、{{ steps.fetch-user.name }}と{{ steps.fetch-user.email }}を使用してください。 - URL、名前、製品名をハードコードせず、代わりに変数を使用してください。
- 他のワークフローステップと一貫性のあるコンテンツにしてください。
- ユーザーの意図に沿ってコンテンツを変更してください。
- 変更を明示的に求められていないものはすべて保持してください。
- 同じ
editorType(メールの場合はblockまたはhtml)と構造を維持してください。
ステップの種類
各ステップの種類には、それぞれ固有のコンテンツルールがあります。コントロールを作成する前に、該当するリファレンスを開いてください。
| ステップの種類 | リファレンス | 用途 |
|---|---|---|
| メール | references/email-step.md | 詳細なコンテンツ、正式な連絡、領収書 |
| アプリ内 | references/in-app-step.md | リアルタイム更新、アクティビティフィード、高いエンゲージメント |
| SMS | references/sms-step.md | 緊急アラート、確認コード、時間制限のあるメッセージ |
| プッシュ | references/push-step.md | モバイルでのエンゲージメント、再エンゲージメント、時間制限のある更新 |
| チャット | references/chat-step.md | Slack / Discord / Teams のチームおよび開発者向けアラート |
| 遅延 | references/delay-step.md | チャネルステップの前にワークフローの実行を一時停止 |
| ダイジェスト | references/digest-step.md | 複数の通知をまとめて1つにする |
| スロットル | references/throttle-step.md | 通知頻度を制限し、疲労を防ぐ |
| HTTP リクエスト | references/http-request-step.md | 外部 API / webhook を呼び出す、後続のステップで使うデータを取得する |
| ステップ条件 | references/step-conditions.md | 「次の場合のみ送信」のための JSON-Logic、マージ / 置換 / 削除 |
よくある落とし穴
- Block Editor 属性内の波括弧 — Maily TipTap ノード属性(
url、text、src、id、each、href、externalLink)には、変数名のみを指定します。"{{ payload.actionUrl }}"は誤りで、"payload.actionUrl"が正しい形式です。references/email-step.mdを参照してください。 - 宣言されていない HTTP レスポンスフィールドの参照 —
{{ steps.<http-step-id>.<property> }}は、そのステップのresponseBodySchemaに記載されたプロパティでのみ機能します。まず、そのプロパティをスキーマに追加してください。 - ループせずに配列の項目をハードコードする — ペイロードに配列(
payload.items、payload.providers)が含まれる場合は、Block Editor のrepeatノードまたは HTML の{% for %}ループで反復処理してください。配列の項目を個別のノード / 要素として列挙しないでください。 - HTTP ヘッダーまたはボディに空のキー / 値を指定する — 不要な場合は空の配列
[]を使用してください。[{ "key": "", "value": "" }]は使用しないでください。 - URL / 製品名のハードコード — ワークフローのポータビリティを保つため、必ず
payload.*またはsubscriber.*から取得してください。 - メール編集時の
editorTypeの変更 — ユーザーが明示的に切り替えを求めない限り、blockはblockのまま、htmlはhtmlのままにしてください。 - ユーザーが「追加」と言ったときにステップ条件を置き換える — 「追加」 / 「さらに」 / 「および」は
{ "and": [...] }でマージし、「変更」 / 「設定」は置き換え、「削除」 / 「クリア」はnullを返します。references/step-conditions.mdを参照してください。
関連項目
design-workflow/— ステップのコンテンツを作成する前に、チャネル、重大度、critical、ダイジェストのデフォルト値を選び、ワークフローテンプレートを選択しますframework-integration/— 代わりに@novu/frameworkを使って、同じワークフローをコードで作成しますtrigger-notification/— ワークフローの作成後に実行します
コメント
Markdown 対応