

成約済み案件から顧客オンボーディング用デッキを自動作成する(2026年版)
顧客オンボーディング用デッキを自動化するには、HubSpot、Salesforce、Pipedriveで案件が成約済み(Closed Won)になった際にWebhookを発火し、n8nのSetノードで案件フィールドをプロンプトにマッピングし、2Slidesの POST /api/v1/slides/generate エンドポイントを呼び出して固定テーマから編集可能なPPTXを取得します。2つ目のスケジュールされたワークフローは利用状況メトリクスから90日レビュー用デッキを作成します。8ページのキックオフデッキは80クレジット(約0.20ドル)で、案件成立から約30秒後にCSMのSlackに届きます。Customer Success opsやRevOpsエンジニア向けに構築されています。
主なポイント
- 成約済みWebhook 1つとn8nのHTTP Requestノード2つで、CRMの案件フィールドを80クレジット(約0.20ドル)の8ページ編集可能オンボーディングデッキに変換。
- Fast PPTの
generateエンドポイントはネイティブPPTXを返すため、CSMはキックオフコール前に30/60/90日プランを編集可能。 - キックオフから85日後にスケジュールされたワークフローが利用状況メトリクスを取得し、100クレジットの10ページ90日レビュー用デッキを作成。
- すべての顧客に1つの
themeIdを使うことでブランド統一。ブランドスライドをreferenceImageUrlに指定するcreate-like-thisで画像デザイン版を作成可能(10ページあたり1,010クレジット)。 - APIは1キーあたり1分間に6リクエストまで許容。四半期末の大量成約時は10秒間隔のキューを用意。
対象者
Customer Success opsやRevOpsを担当し、新規顧客ごとに45分かけて案件メモをキックオフテンプレートにコピーし、目標を打ち直し、90日プランを作成し、最初のビジネスレビュー前に利用数値で繰り返す作業をしている方。このレシピはコピー&ペースト作業を省きつつ、CSMが最終PPTXをコントロールできるようにします。
顧客ごとに変わらない静的なPDFのオンボーディングデッキを使っている場合は、このレシピは不要です。共有リンクの方が顧客成功プレゼン生成ツールより安価です。
ワークフロー概要
| ステップ | ツール | 処理内容 | 2Slidesエンドポイント / クレジット |
|---|---|---|---|
| 1 | CRM(HubSpot、Salesforce、Pipedrive) | 案件ステージがClosed Wonに変わりWebhook発火(案件ID付き) | なし |
| 2 | n8n Webhook + HTTP Request + Set | 案件、連絡先、メモを取得しプロンプトにマッピング | なし |
| 3 | n8n HTTP Request | 固定のthemeIdとmode: "async"でプロンプトを送信 | POST /api/v1/slides/generate、10クレジット/ページ |
| 4 | n8n Wait + HTTP Request | 10秒ごとにstatusがsuccessまたはfailedになるまでポーリング | GET /api/v1/jobs/{jobId}、無料 |
| 5 | n8n SlackまたはEmailノード | downloadUrlをCSMに投稿しCRMに書き戻す | なし |
| 6 | n8n スケジュールトリガー + データウェアハウスクエリ(85日目) | 利用状況メトリクスを取得し90日レビュー用プロンプトを作成 | POST /api/v1/slides/generate、10クレジット/ページ |
| 7 | オプションのプレミアムパス | ブランドスライドをreferenceImageUrlにして画像デザインのレビュー用デッキ作成 | POST /api/v1/slides/create-like-this、10 + 100クレジット/ページ |
ステップ1:APIキーを取得し認証を確認
2slides.com/apiのAPI Keysタブでキーを作成。すべてのアカウントは登録時に500クレジット(キックオフデッキ6枚分)を無料付与され、サブスクリプションなしでキーが使えます。n8nではHeader Auth認証情報として、スケジューラーではSLIDES_API_KEYとして保存し、ノードの本文やブラウザ側スクリプトに直接貼り付けないでください。

認証を確認するには以下を実行:
curl https://2slides.com/api/v1/echo \
-H "Authorization: Bearer $SLIDES_API_KEY"200レスポンスなら認証成功。401はキーの末尾に空白が入っていることが多いです。
ステップ2:オンボーディング用テーマを1つ選んで固定
テンプレートライブラリを一度検索し、クリーンなカバー、タイムラインレイアウト、連絡先レイアウトがあるテーマを選び、そのthemeIdをハードコードします。検索は無料で、1,500以上のテンプレートのthemeIdとメタデータを返します。
curl "https://2slides.com/api/v1/themes/search?query=customer%20onboarding%20timeline&limit=5" \
-H "Authorization: Bearer $SLIDES_API_KEY"
1つのthemeIdでオンボーディングプレゼン自動化をブランド統一
ブランドの一貫性は1つの決定から生まれます:すべてのキックオフデッキと90日レビューで同じthemeIdを使うこと。顧客は1日目も90日目も同じ色とレイアウトを見て、CSMはスタイルを変更しません。デザインチームが承認済みテンプレートを持っている場合は、ブランドテンプレートの自動入力ガイドでライブラリに登録し、themeIdを自社デザインに向けられます。
プレミアムオプション:ブランドスライドを使ったcreate-like-this
戦略的アカウント向けに、Fast PPT呼び出しをPOST /api/v1/slides/create-like-thisに切り替え、承認済みブランドスライドの公開URLをreferenceImageUrlに渡します。パイプラインはその画像からデザインシステムを推測し、画像デザインのスライドをPDFとページごとの画像で返します。出力は編集不可のPPTXではないため、CSMが編集するよりプレゼン用に使います。10ページあたり10クレジット+100クレジットで約2,000クレジット。
ステップ3:CRMフィールドをプロンプトテンプレートに変換
Fast PPTパスはCSMがFast PPTで手動で使う流れと同じ:内容を貼り付け、テーマを選び、PPTXを受け取る。APIは貼り付け作業を自動化します。あなたの仕事はテンプレートとして一度だけ貼り付け内容を上手に書くこと。

n8nのSetノードでCRMプロパティを汎用名にマッピングし、どのCRMでも使えるようにします:company、csmName、plan、seats、startDate、dealNotes(発見メモや「顧客目標」フィールド)、contacts(役職、スポンサー、管理者フラグ)。次に以下のようなテンプレートでuserInputを組み立てます(n8n式構文):
Create a customer onboarding kickoff deck for {{ $json.company }}, a new customer of Northstar Analytics.
CSM: {{ $json.csmName }}. Plan: {{ $json.plan }}, {{ $json.seats }} seats, contract start {{ $json.startDate }}.
Goals from the sales notes: {{ $json.dealNotes }}
Key contacts: {{ $json.contacts }}
Build exactly 8 slides:
1. Welcome cover with the customer name, kickoff date and CSM name
2. What you purchased: plan, seats, modules, contract dates
3. Your three goals, rewritten as measurable outcomes
4. Days 1-30: SSO, data import, admin training
5. Days 31-60: team rollout, first dashboards, adoption target
6. Days 61-90: review prep, success criteria check
7. Your team: CSM, solutions engineer, support channel, executive sponsors on both sides
8. Next steps with owners and dates before the kickoff call
Use only facts from the notes above. Where a detail is missing, insert a bracketed
placeholder such as [CSM to confirm] so it is easy to find in PowerPoint.角括弧のプレースホルダー指示は重要です:出力は編集可能なPPTXなので、CSMは[を検索して2分で空欄を埋められ、8枚すべてを校正するより速いです。
以下は現実的な値を使った呼び出し例(デフォルトの同期モードで、完成デッキを1レスポンスで返します):
curl -X POST https://2slides.com/api/v1/slides/generate \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"themeId": "YOUR_ONBOARDING_THEME_ID",
"responseLanguage": "English",
"mode": "sync",
"userInput": "Create a customer onboarding kickoff deck for Acme Logistics, a new customer of Northstar Analytics. CSM: Priya Shah. Plan: Business, 120 seats, contract start 2026-10-01. Goals from the sales notes: replace weekly Excel fleet reports with live dashboards; cut month-end reporting from 5 days to 1; give 40 regional managers self-serve access. Key contacts: Dana Ortiz (VP Operations, executive sponsor), Luis Ferreira (BI lead, admin). Build exactly 8 slides: 1 welcome cover with customer name, kickoff date and CSM; 2 what you purchased; 3 the three goals as measurable outcomes; 4 days 1-30 (SSO, data import, admin training); 5 days 31-60 (regional manager rollout, first 5 dashboards); 6 days 61-90 (review prep, success criteria check); 7 your team and support channels; 8 next steps with owners and dates. Where a detail is missing, insert a bracketed placeholder for the CSM to fill in."
}'レスポンスは { "success": true, "data": { "jobId": "...", "status": "success", "downloadUrl": "https://..." } } の形。8ページで80クレジット。ダウンロードリンクに依存せず、自分のストレージにコピーしてください。
ステップ4:n8nでClosed-Won Webhookから顧客オンボーディングデッキを自動化
これは成約済みWebhookからスライド作成までの流れ。CRMごとにWebhook発火の仕様が異なります:
- HubSpot:プライベートアプリで
deal.propertyChangeのdealstageを購読し、n8nでclosedwonをフィルター。ペイロードはIDのみなので後でレコードを取得(HubSpot Webhookドキュメント)。 - Pipedrive:更新済み案件イベントを購読し、
status = wonでフィルター。 - Salesforce:
StageName = Closed Wonのレコードトリガーフローでn8nのWebhook URLにHTTPコールアウト。
n8nのノード構成:
- Webhookトリガー(POST):CRMペイロード受信。
- IF:ステージがClosed Wonかつ
onboarding_deck_urlが空の場合のみ続行。Webhook再送で重複デッキ作成防止。 - HTTP Request(GET, CRM API):案件、連絡先、メモを取得。
- Setノード:ステップ3のフィールドをマッピングし
userInputを組み立て。 - HTTP Request(POST generate):
https://2slides.com/api/v1/slides/generateにHeader Auth認証とJSONボディ(themeId、userInput、responseLanguage: "English"、mode: "async")を送信。非同期は1秒未満でdata.jobIdを返すため、n8nは長時間接続を保持しない。 - Waitノード:10秒待機。
- HTTP Request(GET jobs):
https://2slides.com/api/v1/jobs/{{ $json.data.jobId }}。 - IF:
successなら続行、pendingまたはprocessingならWaitに戻る、failedならSlackでopsチャンネルにアラート。 - Slackノード(またはGmail/Outlook):CSMに顧客名、
downloadUrl、キックオフ日、案件リンクをメッセージ。 - HTTP Request(PATCH, CRM API):
downloadUrlをonboarding_deck_urlに書き戻し、次回IFノードで検知。
四半期末に20件の案件が1時間以内に成立する場合は、送信前に10秒Waitを入れたバッチループを追加。generateは1キーあたり1分間に6リクエスト、ジョブ取得は10リクエストまで。詳しくはn8nと2SlidesのウォークスルーやHubSpot営業デッキ自動化記事を参照。
公平を期すために:GammaのAPI(developers.gamma.app)も似たn8n+HubSpotオンボーディングデッキレシピを公開。Gamma APIキーはProプラン必須、2Slidesキーはどのアカウントでも使えます。2Slidesは当社製品なので比較時はご留意ください。n8n HTTP Requestノードドキュメントは両レシピ共通です。
ステップ5:85日目にQBRデッキ自動化をスケジュール
キックオフデッキは言葉ベース、レビューは数値ベースなのでトリガーはWebhookからスケジュールに変わります。n8nの毎日Schedule Trigger(またはcronジョブ)が85日前のkickoff_dateを持つ顧客を選び、データウェアハウスや分析APIから利用状況メトリクスを取得し10ページレビュー用デッキを生成。5日間のリードタイムでCSMが数値を検証しプレースホルダーを修正して90日コールに備えられます。
数値は8〜12個に抑えましょう。多すぎるとダッシュボードのエクスポートのように読みにくくなります。QBRデッキガイドに90日以降の四半期レビュー用スライド構成があります。
以下はNode.js版の完全な送信・ポーリング・ダウンロードループで、四半期QBRデッキ自動化APIジョブにも流用可能です:
// review-deck.mjs (Node 20+, no dependencies)
// Run daily from a scheduler: SLIDES_API_KEY=... ONBOARDING_THEME_ID=... node review-deck.mjs
const BASE = "https://2slides.com";
const HEADERS = {
Authorization: `Bearer ${process.env.SLIDES_API_KEY}`,
"Content-Type": "application/json",
};
const THEME_ID = process.env.ONBOARDING_THEME_ID; // same theme as the kickoff deck
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
function buildPrompt(c) {
return `Create a 90-day customer review deck for ${c.company}, a customer of Northstar Analytics.
Audience: ${c.sponsor} (executive sponsor) and ${c.admin} (admin). Presenter: ${c.csmName}.
Kickoff goals: ${c.goals.join("; ")}.
Usage for days 1-85: ${c.weeklyActiveUsers} weekly active users of ${c.seats} seats (${c.adoptionPct}% adoption),
${c.dashboards} dashboards published, ${c.reportsAutomated} recurring reports automated,
${c.ticketsOpened} support tickets opened (${c.ticketsOpen} still open), active in ${c.weeksActive} of 12 weeks.
Build exactly 10 slides: 1 cover; 2 executive summary in three sentences; 3 goals vs outcomes table;
4 adoption trend; 5 feature adoption; 6 business impact using the numbers above; 7 open issues and owners;
8 roadmap items that match their goals; 9 plan for days 91-180; 10 next steps with owners and dates.
Use only the numbers given. Where a number is missing, write [CSM to confirm].`;
}
async function generateDeck(customer) {
const submit = await fetch(`${BASE}/api/v1/slides/generate`, {
method: "POST",
headers: HEADERS,
body: JSON.stringify({
themeId: THEME_ID,
userInput: buildPrompt(customer),
responseLanguage: customer.language ?? "English", // a language name such as "Spanish", not a code
mode: "async",
}),
});
const submitted = await submit.json();
if (!submitted.success) throw new Error(submitted.error);
const jobId = submitted.data.jobId;
// Poll every 10 s. The jobs endpoint is free and allows 10 requests per minute.
for (;;) {
await sleep(10_000);
const res = await fetch(`${BASE}/api/v1/jobs/${jobId}`, { headers: HEADERS });
const { data } = await res.json();
if (data.status === "success") return data.downloadUrl;
if (data.status === "failed") throw new Error(`Job ${jobId} failed`);
}
}
async function main() {
// Your warehouse query: customers where kickoff_date = today minus 85 days
const customers = await loadCustomersDueForReview();
for (const c of customers) {
const url = await generateDeck(c);
const file = await fetch(url);
await saveToStorage(`${c.company}-90-day-review.pptx`, Buffer.from(await file.arrayBuffer()));
await notifyCsm(c.csmName, c.company, url); // Slack or email, your implementation
await sleep(10_000); // keeps generate calls under 6 per minute
}
}
main().catch((err) => { console.error(err); process.exit(1); });10ページのレビュー用デッキは100クレジット(約0.25ドル)。ループは意図的に1顧客ずつ処理し、10秒間隔で30顧客が同日に85日目を迎えてもレート制限内に収まります。
良い90日レビュー用デッキの例
レビュー用プロンプトを確定する前に、メトリクス駆動型デッキの強みを確認しましょう。以下2枚は2SlidesギャラリーのGrab投資家向けアップデートからの参照デッキで、API出力ではなくデザインの参考例です。


3つの教訓:
- スライド1枚につき1つの数値を示し、12個の表は避ける。
- 各指標を顧客のキックオフ目標と結びつけ、レビューで開いたループを閉じる。
- 未解決課題は担当者付きで専用スライドを設ける。
この視覚言語をテンプレートテーマの代わりに使うには、これらのスライドURLのいずれかをreferenceImageUrlとしてcreate-like-thisに渡します。
費用について
Fast PPTは1ページ10クレジット。クレジット単価は2,000クレジットの5ドルパックで0.0025ドル、40,000クレジットの80ドルパックで0.002ドル。顧客1件あたり8ページキックオフ+10ページレビューを想定。
| ボリューム | 月あたりデッキ数 | 月あたりクレジット | おおよその費用 |
|---|---|---|---|
| 新規顧客20件 | キックオフ20 + レビュー20 = 40 | 20×80 + 20×100 = 3,600 | 約9ドル(5ドルパック2つで4,000クレジット) |
| 新規顧客500件 | キックオフ500 + レビュー500 = 1,000 | 500×80 + 500×100 = 90,000 | 約180ドル(80ドルパック40,000クレジット×2.25) |
| プレミアム:画像デザインレビュー20件(2K、10ページ) | 20 | 20×(10 + 1,000) = 20,200 | 約43ドル(42.50ドルパック20,000クレジット) |
20顧客規模では、API費用は両デッキ合わせて1顧客あたり0.45ドルで、手動版のCSM作業30時間/月に比べて大幅なコスト削減。
このユースケースにFast PPTと画像デザインスライドのどちらが良い?
| 質問 | Fast PPT generate(編集可能PPTX) | create-pdf-slides / create-like-this(画像デザイン) |
|---|---|---|
| CSMはコール前に編集する? | はい、キックオフデッキのデフォルト | いいえ、PDFとページ画像で編集不可 |
| 10ページの費用 | 100クレジット(約0.25ドル) | 2Kで1,010クレジット(約2.53ドル) |
| ブランドコントロール | 1つのthemeIdまたは自社アップロードテンプレート | 1つのreferenceImageUrlから派生したデザインシステム |
| ナレーションや動画レビュー用MP4は? | 非対応 | generate-narration(210クレジット/ページ)+download-slides-pages-voices |
目安:キックオフデッキは編集が必須なのでFast PPT一択。90日レビューは基本Fast PPTで、トップティアアカウントやナレーション動画はcreate-like-thisを使う。
よくある落とし穴
- 四半期末の大量処理でレート制限にかかる。
generateは1キーあたり1分間に6リクエスト。Webhookごとに並列実行せず10秒Waitで直列化。 - APIキーの管理場所が誤っている。 キーはn8n認証情報かサーバー環境変数に保管。ブラウザウィジェットやクライアント側CRMカードからAPIを呼ばない。
- Fast PPTデッキのナレーションを試みる。
generate-narrationはcreate-pdf-slidesとcreate-like-thisのみ対応。ナレーション動画は最初からcreate-like-thisで生成。 - 言語コードではなく言語名を使う。
responseLanguageは"Spanish"や"Japanese"など言語名。CRMのロケールフィールドをSetノードで言語名にマッピング。 - 案件タイムライン全文をプロンプトに入れる。 20ページの通話メモは混乱したデッキに。Codeノードで3つの目標と5つの事実に要約するか、専用の「顧客目標」CRMプロパティを使う。
- Webhook再送でデッキが重複作成される。 CRMはタイムアウト時に再送する。
downloadUrlを案件に書き戻し、生成前に存在をチェック。
よくある質問
n8nなしで顧客オンボーディングデッキを自動化できますか?
はい。ワークフローはHTTP呼び出し2回とポーリング1回なので、Zapier、Make、Salesforce FlowのHTTPコールアウト、ステップ5の60行Node.jsスクリプトなども可能。n8nはWaitとIFノードでポーリングループが見える化され便利ですが、エンドポイントと1ページあたり10クレジットの料金はどのオーケストレーターでも同じです。
成約後、キックオフデッキの生成にどれくらいかかりますか?
Fast PPTデッキは通常30秒程度で完成。非同期フローでは送信で1秒未満にjobIdを受け取り、10秒後の最初のポーリングでprocessing、2〜3回目のポーリングでsuccessとdownloadUrlが返ります。CSMはステージ変更から1分以内にSlack通知を受け取ることが多いです。
CSMは生成されたオンボーディングデッキを編集できますか?
はい。generateエンドポイントはデザイン済みテンプレートからネイティブPPTXを返すため、PowerPoint、Keynote、Google Slidesでテキスト、順序、レイアウトを編集可能。ステップ3のプロンプトはCRMに情報がない箇所に[CSM to confirm]のプレースホルダーを入れるため、編集は書き直しではなく簡単な検索&置換になります。
90日レビュー用デッキはどんなデータを取り込むべきですか?
8〜12個の数値を渡します:座席数に対する週次アクティブユーザー数、採用機能数、ワークフローやレポートの自動化数、開いたサポートチケット数と未解決数、12週間中のアクティブ週数、各キックオフ目標の進捗。85日目に取得し、CSMが5日間検証して90日コールに備えます。元の目標も含めてループを閉じます。
この顧客成功プレゼン生成ツールは非英語顧客に対応していますか?
はい。responseLanguageに"Spanish"、"Portuguese"、"Japanese"など言語名を指定すると、デッキ内容はその言語で作成され、テーマは同じままです。2Slidesは20以上の出力言語をサポート。CRMのロケールフィールドをSetノードで言語名にマッピングし、顧客ごとに作業言語のデッキを自動配信できます。
次のステップ
- 2slides.com/apiでAPIキーを取得。500クレジットの無料分でキックオフデッキ6枚分をカバーし、成約済み案件のオンボーディングデッキ自動化を試せます。
- AIプレゼンAPIユースケースチーム別ハブで他チームの同じエンドポイント利用例を確認。
- QBRデッキガイドで第2四半期以降のパイプライン拡張、ブランドテンプレート自動入力ガイドで
themeIdを自社承認デザインに向ける方法を学ぶ。
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free