

Airtableから自動プレゼンテーション生成ワークフローガイド(2026年版)
Airtableは数千のチームにとって信頼できる情報源データベースです — CRMパイプライン、プロジェクトトラッカー、コンテンツカレンダー、投資家CRM、在庫システムなど。2026年版のAirtableからプレゼンテーション生成パイプラインは、任意のAirtableビューを1分以内に完成したPowerPointデッキに変換します。2つのアプローチがあります:(1) AirtableオートメーションとMake/Zapier、そして2Slides APIを使用したノーコード方式。レコード単位やビュー単位のデッキ生成に最適(週次クライアントレビュー、月次投資家報告など)。(2) 2Slides V1 APIを使用したカスタムAirtable Extension。Airtable内部からのオンデマンドデッキ生成に最適。本ガイドでは、実際に動作するコード、正確な2Slides APIペイロード、そして4つの実用的なAirtable駆動型デッキパターン(営業パイプラインレビュー、コンテンツカレンダー月次レポート、プロジェクトトラッカーQBR、投資家CRM更新)を紹介します。これらはあなた自身のベースに適応可能です。各パターンには、正確なフィールドマッピング、プロンプト構築ロジック、ポーリング戦略が含まれており、あなたのワークスペースにペーストするだけで、その日の午後には本番環境対応の統合を実現できます。
2026年のAirtableからデッキへのアーキテクチャ
ほとんどのAirtableベースには、すでにデッキの80%が含まれています。数値、名前、日付、ステータスフラグなど。欠けているのはナラティブレイヤー、つまり見出し、フレーミング、「これがビジネスにとって何を意味するか」です。これこそが大規模言語モデルのデッキジェネレーターが埋めるギャップです。
2026年のアーキテクチャは3つの関心事を分離します:
- データレイヤー(Airtable) — レコード、ビュー、フィルター、ロールアップ。これが信頼できる唯一の情報源が存在する場所です。デッキ生成ワークフローでは、データを他の場所に複製する必要は一切ありません。
- オーケストレーションレイヤー(Airtable Automations、Zapier、Make、またはカスタムExtension) — トリガー(ボタンの押下、ステータス変更、スケジュールされたcron)をリッスンし、関連するレコードをクエリし、プロンプトにフォーマットし、2Slides APIを呼び出す接着剤。
- 生成レイヤー(2Slides V1 API) —
/api/v1/slides/generateエンドポイントは、プロンプトとオプションのテーマおよびページ数パラメータを受け入れ、AIが生成したナラティブ、構造化されたチャート、スピーカーノート、オプションのナレーション音声を含むPowerPointファイルを非同期に生成します。
オーケストレーションレイヤーは、実装の選択が重要になる場所です。コードなしを希望するチームは、Airtable Automations + Zapier webhooksに頼ります。Airtable内に「デッキを生成」ボタンが欲しいチームは、カスタムExtensionを構築します。どちらのパスも同じAPIコントラクトに収束するため、ノーコードパスでプロトタイプを作成し、後でExtensionパスに堅牢化できます。
方法1: ノーコード (Airtable Automations + Zapier + 2Slides)
ノーコードの方法は、最も早く本番環境に導入できる方法で、通常1時間以内に完成します。トリガーがレコードベースの場合(新規案件が「提案」ステージに入る、プロジェクトが「QBR準備完了」とマークされる、キャンペーンが月末を迎えるなど)に最適な選択肢です。
ステップ1: Airtableベースを準備する
プレゼンテーションを生成したいテーブルに、以下の3つのフィールドを追加します:
Deck Status(単一選択: Queued, Generating, Ready, Failed)Deck URL(URL)Deck Job ID(1行テキスト)
これらのフィールドにより、オートメーションが進捗状況をレコードに書き戻すことができ、ユーザーはトリガーを実行したのと同じ行にデッキが表示されるのを確認できます。
ステップ2: Airtable Automationを構築する
新しいオートメーションを作成し、トリガーを**「レコードが条件に一致したとき」に設定します。例: Deck Status が Queued。「スクリプトを実行」**アクションを追加して、レコードをプロンプトにフォーマットします:
const inputConfig = input.config();
const record = inputConfig.record;
const prompt = `Create a 10-slide account review deck for ${record.accountName}.
Pipeline value: $${record.pipelineValue.toLocaleString()}.
Current stage: ${record.stage}.
Last touchpoint: ${record.lastTouchpoint}.
Open risks: ${record.risks}.
Recommended next action: ${record.nextAction}.
Structure: title, executive summary, relationship history, pipeline status,
risks and blockers, opportunity sizing, recommended next steps, appendix.`;
output.set('prompt', prompt);
output.set('recordId', record.id);ステップ3: Zapier(またはMake)にWebhookを送信する
**「Webhookを送信」**アクションを追加して、Zapierのキャッチフックに POST します。Zapierの2番目のステップで2Slides APIを呼び出します:
POST https://2slides.com/api/v1/slides/generate
Headers:
Authorization: Bearer {{YOUR_2SLIDES_API_KEY}}
Content-Type: application/json
Body:
{
"prompt": "{{prompt from Airtable}}",
"pages": 10,
"theme": "corporate-navy",
"language": "en",
"webhook": "https://hooks.zapier.com/hooks/catch/XXXXX/airtable-deck-ready"
}レスポンスにはjobIdが含まれます。ZapierのAirtableアクションを使用してAirtableレコードに保存し、Deck StatusをGeneratingに設定します。
ステップ4: 完了Webhookを処理する
2Slidesは、ジョブが完了すると、指定したWebhook URLを呼び出します。そのZapはdownloadUrlを読み取り、AirtableレコードをDeck URLとDeck Status = Readyで更新します。エンドツーエンドの合計レイテンシー: 通常40〜75秒です。
Webhookを使用したくない場合は、スケジュールトリガーで起動する2番目のZapから、5秒ごとに/api/v1/jobs/:idをポーリングします。ポーリングパターンとリトライロジックの詳細については、PythonとAPI 2Slidesでプレゼンテーション生成を自動化するのガイドをご覧ください。
方法2: カスタムAirtable Extension
Airtable UIに直接埋め込まれた「デッキ生成」ボタンが必要な場合 — 外部Zapなし、Webhookルーティングなし — カスタムExtensionが適切な選択です。Airtable ExtensionはReactアプリケーションで、ベース内でレンダリングされ、fetchを使用して外部APIを呼び出すことができます。
以下は、選択されたレコードを読み取り、/api/v1/slides/generateを呼び出し、デッキの準備ができるまで/api/v1/jobs/:idをポーリングする最小限のExtensionです:
import {
initializeBlock, useBase, useCursor, useRecordById,
Button, Text, Box, useGlobalConfig,
} from '@airtable/blocks/ui';
import React, { useState } from 'react';
function DeckGenerator() {
const base = useBase();
const cursor = useCursor();
const globalConfig = useGlobalConfig();
const apiKey = globalConfig.get('TWO_SLIDES_API_KEY');
const table = base.getTableByIdIfExists(cursor.activeTableId);
const record = useRecordById(table, cursor.selectedRecordIds[0] || '');
const [status, setStatus] = useState('idle');
const [deckUrl, setDeckUrl] = useState(null);
async function generateDeck() {
if (!record) return;
setStatus('submitting');
const prompt = buildPrompt(record);
const res = await fetch('https://2slides.com/api/v1/slides/generate', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ prompt, pages: 10, theme: 'corporate-navy' }),
});
const { jobId } = await res.json();
setStatus('generating');
pollJob(jobId);
}
async function pollJob(jobId) {
const interval = setInterval(async () => {
const res = await fetch(`https://2slides.com/api/v1/jobs/${jobId}`, {
headers: { 'Authorization': `Bearer ${apiKey}` },
});
const job = await res.json();
if (job.status === 'success') {
clearInterval(interval);
setDeckUrl(job.downloadUrl);
setStatus('ready');
await table.updateRecordAsync(record, {
'Deck URL': { url: job.downloadUrl },
'Deck Status': { name: 'Ready' },
});
} else if (job.status === 'failed') {
clearInterval(interval);
setStatus('failed');
}
}, 5000);
}
return (
<Box padding={3}>
<Button onClick={generateDeck} disabled={status === 'generating'}>
{status === 'generating' ? '生成中…' : 'デッキを生成'}
</Button>
{deckUrl && <Text>デッキの準備完了: <a href={deckUrl}>ダウンロード</a></Text>}
</Box>
);
}
function buildPrompt(record) {
return `${record.getCellValueAsString('Account')}向けの10スライドデッキを作成してください。
パイプライン: ${record.getCellValueAsString('Pipeline Value')}。
ステージ: ${record.getCellValueAsString('Stage')}。
備考: ${record.getCellValueAsString('Notes')}。`;
}
initializeBlock(() => <DeckGenerator />);これにより、任意のAirtableビュー内にワンクリックの「デッキを生成」ボタンが提供されます。Extensionパターンは、globalConfigを介してチーム全体で単一のAPIキーを再利用することも容易にします。AIデッキ生成を任意のSaaSインターフェイスに埋め込むための、より広範な製品エンジニアリングの視点については、SaaS製品へのAIスライド生成の統合をご覧ください。
Airtable データ用の 2Slides API ペイロード
/api/v1/slides/generate エンドポイントは以下の JSON 構造を受け付けます。prompt 以外はすべてオプションですが、Airtable 駆動のワークフローでは、一貫した出力を得るために pages、theme、language を明示的に設定することが推奨されます。
{
"prompt": "Acme Corp. の第4四半期パイプラインレビューを12スライドで作成。パイプライン価値: 7件の進行中案件で $420,000。トップアカウント: Globex ($180,000、提案段階)。リスク: Initech ($60,000、28日間停滞)。構成: タイトル、エグゼクティブサマリー、パイプライン概要チャート、アカウント別詳細、リスク、予測、推奨される次のアクション、付録。",
"pages": 12,
"theme": "corporate-navy",
"language": "en",
"aspectRatio": "16:9",
"tone": "executive",
"includeSpeakerNotes": true,
"webhook": "https://your-app.com/webhooks/deck-ready"
}レスポンス:
{ "jobId": "tl_a1b2c3d4e5", "status": "pending" }Webhook を使用せずに進捗を確認するには、GET /api/v1/jobs/:id をポーリングします。success レスポンスは downloadUrl(.pptx ファイル)、pdfUrl(PDF が要求された場合)、および pages(画像と音声 URL を含むページごとのメタデータ配列)を返します。
Airtable ワークフローで知っておくべき関連 V1 エンドポイント:
POST /api/v1/slides/generate— プロンプトからデッキを生成する主要エンドポイント。POST /api/v1/slides/create-pdf-slides— ソース PDF(例: Airtable にアップロードされた添付ファイル)を受け取り、それを要約したデッキを生成します。POST /api/v1/slides/create-like-this— 既存のデッキから構造を複製。毎週のクライアントレビューをテンプレートに合わせたい場合に便利です。POST /api/v1/slides/generate-narration— 各スライドのナレーション音声を生成。Loom スタイルの非同期更新用に動画エクスポートパイプラインと組み合わせて使用します。GET /api/v1/slides/download-slides-pages-voices/:jobId— すべてのページ画像と音声ファイルを ZIP として一括取得。Airtable の添付ファイルフィールドに便利です。GET /api/v1/jobs/:id— ジョブステータスのポーリングエンドポイント。GET /api/v1/themes/search?query=corporate— 検索可能なテーマディレクトリ。Airtable ユーザーがリンクされたレコードフィールドからテーマを選択できるようにします。
4 つの実践的な Airtable 連携デッキパターン
パターン 1: 営業パイプラインレビュー
ベース構造: Deals テーブルに、Account、Stage、ARR、Owner、Last Contact、Risks、Next Step のフィールドを設定。
トリガー: 毎週金曜日午前 8:00 にスケジュール実行。Stage が Proposal または Negotiation の案件に絞り込み。
プロンプト構築: 該当するすべてのレコードを単一のプロンプトに集約し、ステージ別の合計、ARR 上位 5 件のリスト、14 日以上未対応の案件をフラグ付けリストとして含める。pages: 12、theme: corporate-navy、tone: executive を設定。
成果物: 毎週月曜日の朝、営業リーダーが Airtable を開くと、「Pipeline Review — Week of {date}」というタイトルのデッキが、同期された「Weekly Reviews」テーブルに既に添付されている。手動でのスライドコピー&ペーストは不要。
パターン 2: コンテンツカレンダー月次レポート
ベース構造: Content テーブルに Title、Publish Date、Channel、Views、Engagement Rate、Author を設定。
トリガー: 毎月 1 日に、過去 30 日間のレコードに対して自動実行。
プロンプト構築: エンゲージメント順にランク付け、前月比の変化を計算、チャネル別にグループ化。モデルに対して以下の構成で 10 スライドのデッキを依頼:要約、トップパフォーマー、低調なコンテンツ、チャネルミックス、著者ランキング、推奨事項。pages: 10、theme: editorial、includeSpeakerNotes: true を設定。
成果物: コンテンツ担当者は PowerPoint を触ることなく、月次レビュー会議で使えるデッキを入手。
パターン 3: プロジェクトトラッカー QBR
ベース構造: Projects テーブルに Client、Status、Completion %、Milestones、Blockers、Hours Used、Hours Budgeted を設定。
トリガー: Airtable Extension 内の手動ボタン、1 クライアントずつスコープを限定。
プロンプト構築: 過去四半期のクライアント向けプロジェクトをすべて取得、完了ステータス別に要約、ブロッカーを抽出、工数使用率を計算。デッキの構成:タイトル、四半期の概要、プロジェクト別の振り返り、ブロッカー + リスク、次四半期の予測、推奨されるスコープ調整。pages: 14、theme: consulting-slate を設定。
成果物: プロジェクトマネージャーがクライアントのレコードを開き、「Generate QBR Deck」をクリックすると、1 分以内に 14 スライドの成果物が完成。レビュー後、必要に応じて PowerPoint で編集し、送付。
パターン 4: 投資家 CRM 更新
ベース構造: Investors テーブルに Fund、Stage Interest、Last Meeting、Notes、Intro Via を設定。
トリガー: Status が Scheduled Follow-Up に変更されたときに実行。
プロンプト構築: その投資家の表明されたステージへの関心に合わせた会社アップデートデッキを構築。リンクされた KPIs テーブルから会社の指標 — MRR、成長率、バーンレート、ランウェイ、ヘッドカウント — を取得し、プロンプトに注入。構成:タイトル、前回の会話からの変化、KPI アップデート、新規ロゴ、プロダクトロードマップ、チーム、依頼事項。pages: 15、theme: startup-modern を設定し、create-like-this で過去のデッキを参照することで、すべての投資家アップデートに一貫した視覚的アイデンティティを持たせる。
成果物: すべての投資家フォローアップに対して、創業者がマスターテンプレートから再構築することなく、パーソナライズされたブランド統一デッキを提供。
よくある質問
Airtableのアタッチメント(PDF、デッキ)を2Slides APIに渡すにはどうすればいいですか?
Airtableはアタッチメントをレコードペイロード内のURLとして公開します。PDFを入力する場合は、POST /api/v1/slides/create-pdf-slidesを呼び出し、アタッチメントのURLをsourcePdfUrlフィールドとして指定します。既存のPowerPointをスタイルマッチングに使用する場合は、まずアタッチメントをダウンロードしてから、ファイルアップロードでcreate-like-thisを呼び出します。どちらのエンドポイントもjobIdを返し、generateと同じ方法でポーリングします。
Airtableのロールアップや数式フィールドをプロンプトで使用できますか?
はい、使用できますし、使用すべきです。ロールアップ(総ARR、平均取引規模、リスクのあるプロジェクト数)は、デッキを有用にする要約数値を正確に生成します。Automationスクリプト内で他のフィールドと同じ方法で参照します — record.getCellValueAsString('Total ARR') — そしてそれらをプロンプト文字列に埋め込みます。
2Slidesのジョブが失敗した場合はどうなりますか?
失敗したジョブは/api/v1/jobs/:idからstatus: "failed"を返し、原因を説明するerrorフィールドが含まれます(最も一般的なのは:プロンプトの形式が正しくない、サポートされていないテーマスラッグ、クレジット不足)。本番環境のAirtableワークフローでは、ポーリングステップでこれをキャッチし、レコードにDeck Status = Failedを設定し、オプションでよりシンプルなプロンプトで再試行します。レコードごとに1回の再試行を想定してください。持続的な失敗は通常、ログに記録する価値のあるプロンプト構築のバグを示しています。
2Slides APIキーをAirtableスクリプトから隠すにはどうすればいいですか?
Automationsスクリプトの場合は、単一レコードの設定テーブルにキーを保存して動的に読み取るか、Zapier/Makeの環境シークレットを参照する入力変数として渡します。Extensionsの場合は、一度限りの管理者セットアップ画面を介してglobalConfig.setAsync('TWO_SLIDES_API_KEY', value)を使用します — これはキーをベースのメタデータに保存し、ソース管理されたコードには含めません。
複数のチームメンバーが1つのAPIキーをレート制限に引っかからずに共有できますか?
はい。2Slidesのレート制限は、Teamプランのキーでかなり余裕があります(通常、60リクエスト/分、500/時間)。これは10〜20人のアクティブなAirtableユーザーがデッキをトリガーする場合に快適に対応します。より高ボリュームのプログラマティックワークフロー — たとえば、2,000人の顧客に対して毎晩顧客ごとにデッキを生成する — の場合は、バッチに分割して呼び出しをずらすか、より高い制限を持つEnterpriseキーをリクエストしてください。
まとめ
Airtableは、構造化されたリレーショナルなチーム共有データの保存に優れています。PowerPointは、人間に対するナラティブの伝達に優れています。その間にあるギャップ――「これをデッキにする」というギャップ――は、営業リーダー、コンテンツマーケター、PM、創業者にとって、毎週何時間もの時間を消費していました。2026年、そのギャップは単一のwebhookまたは単一のボタンで解消されます。
このガイドの2つの方法は、全範囲をカバーしています。ノーコードパスは、インフラストラクチャなしで午後のうちに本番環境に到達でき、Extensionパスは、Airtable内部に存在するネイティブな感覚の「デッキを生成」ボタンをチームに提供します。どちらも同じ /api/v1/slides/generate コントラクトに収束するため、Zapierから始めて、実際のレコードに対してプロンプト構造を検証し、ワークフローが証明されたらカスタムExtensionに移行することができます。上記の4つのパターン――パイプラインレビュー、コンテンツレポート、プロジェクトQBR、投資家向けアップデート――は、実際のAirtable駆動デッキのユースケースの大部分をカバーしており、午後のうちに自分のベースに貼り付けて適応できる程度に意図的に小さく設計されています。
任意のAirtableビューをPowerPointに変換――2Slides APIキーを取得して、1時間以内にAirtable automationsに接続しましょう。
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free