

Airtable에서 AI 프레젠테이션 생성 워크플로우 가이드 (2026)
Airtable은 수천 개 팀의 핵심 데이터베이스입니다 — CRM 파이프라인, 프로젝트 트래커, 콘텐츠 캘린더, 투자자 CRM, 재고 시스템 등. 2026년 Airtable-to-deck 파이프라인은 두 가지 방법으로 Airtable 뷰를 1분 이내에 완성된 PowerPoint 덱으로 변환합니다: (1) Airtable Automations + Make/Zapier + 2Slides API를 사용한 노코드 방식은 레코드별 또는 뷰별 덱(주간 고객 리뷰, 월간 투자자 업데이트)에 이상적이며; (2) 2Slides V1 API를 사용한 커스텀 Airtable Extension은 Airtable 내부에서 온디맨드 덱 생성에 이상적입니다. 이 가이드는 실제 작동하는 코드, 정확한 2Slides API 페이로드, 그리고 여러분의 베이스에 적용할 수 있는 네 가지 실제 Airtable 기반 덱 패턴(영업 파이프라인 리뷰, 콘텐츠 캘린더 월간 리포트, 프로젝트 트래커 QBR, 투자자 CRM 업데이트)을 소개합니다. 모든 패턴에는 정확한 필드 매핑, 프롬프트 구성 로직, 폴링 전략이 포함되어 있어 여러분의 워크스페이스에 붙여넣고 오후가 끝나기 전에 프로덕션 준비가 완료된 통합을 완성할 수 있습니다.
2026 Airtable-to-Deck 아키텍처
대부분의 Airtable 베이스에는 이미 프레젠테이션의 80%가 포함되어 있습니다: 숫자, 이름, 날짜, 상태 플래그 등입니다. 빠진 것은 내러티브 레이어, 즉 헤드라인, 프레이밍, "비즈니스에 미치는 의미"입니다. 이것이 바로 대형 언어 모델 프레젠테이션 생성기가 채우는 공백입니다.
2026 아키텍처는 세 가지 관심사를 분리합니다:
- 데이터 레이어 (Airtable) — 레코드, 뷰, 필터, 롤업. 여기가 단일 진실 공급원(source of truth)이 존재하는 곳입니다. 프레젠테이션 생성 워크플로우에서 데이터를 다른 곳에 복제할 필요가 없어야 합니다.
- 오케스트레이션 레이어 (Airtable Automations, Zapier, Make, 또는 커스텀 Extension) — 트리거(버튼 클릭, 상태 변경, 예약된 cron)를 감지하고, 관련 레코드를 쿼리하며, 이를 프롬프트로 포맷하고, 2Slides API를 호출하는 접착제입니다.
- 생성 레이어 (2Slides V1 API) — 엔드포인트는 프롬프트와 선택적 테마 및 페이지 수 매개변수를 받아, AI 생성 내러티브, 구조화된 차트, 발표자 노트, 선택적 내레이션 오디오가 포함된 PowerPoint 파일을 비동기적으로 생성합니다.
/api/v1/slides/generate
오케스트레이션 레이어는 구현 선택이 중요한 곳입니다. 코딩 없이 작업하려는 팀은 Airtable Automations + Zapier 웹훅을 선택합니다. Airtable 내부에 "프레젠테이션 생성" 버튼을 원하는 팀은 커스텀 Extension을 구축합니다. 두 경로 모두 동일한 API 계약으로 수렴하므로, 노코드 경로로 프로토타입을 만들고 나중에 Extension 경로로 강화할 수 있습니다.
방법 1: 노코드 (Airtable Automations + Zapier + 2Slides)
노코드 방식은 가장 빠르게 프로덕션에 배포할 수 있는 방법으로 — 일반적으로 1시간 미만 — 트리거가 레코드 기반일 때 적합한 선택입니다 (새로운 거래가 "제안" 단계에 진입, 프로젝트가 "QBR 준비됨"으로 표시, 캠페인이 월말에 도달하는 경우 등).
1단계: Airtable 베이스 준비하기
프레젠테이션을 생성할 테이블에 세 가지 필드를 추가합니다:
- (단일 선택: Queued, Generating, Ready, Failed)
Deck Status - (URL)
Deck URL - (한 줄 텍스트)
Deck Job ID
이 필드들은 자동화가 레코드에 진행 상황을 기록할 수 있게 하여, 사용자가 트리거한 동일한 행에서 프레젠테이션이 나타나는 것을 볼 수 있도록 합니다.
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)로 웹훅 전송하기
Zapier 캐치 훅으로 POST하는 "웹훅 전송" 액션을 추가합니다. Zapier의 두 번째 단계에서 2Slides API를 호출합니다:
POST https://2slides.com/api/v1/slides/generate Headers: Authorization: Bearer {{YOUR_2SLIDES_API_KEY}} Content-Type: application/json Body: { "prompt": "{{Airtable의 프롬프트}}", "pages": 10, "theme": "corporate-navy", "language": "en", "webhook": "https://hooks.zapier.com/hooks/catch/XXXXX/airtable-deck-ready" }
응답에는
jobIdDeck Status4단계: 완료 웹훅 처리하기
2Slides는 작업이 완료되면 웹훅 URL을 호출합니다. 해당 Zap은
downloadUrlDeck URLDeck Status = Ready웹훅을 사용하지 않으려면, 스케줄로 트리거되는 두 번째 Zap에서 5초마다
/api/v1/jobs/:id방법 2: 커스텀 Airtable 확장 프로그램
외부 Zap이나 웹훅 라우팅 없이 Airtable UI에 직접 "프레젠테이션 생성" 버튼을 임베드하고 싶다면, 커스텀 확장 프로그램이 적합한 방법입니다. Airtable 확장 프로그램은 베이스 내부에 렌더링되며
fetch다음은 선택된 레코드를 읽고,
/api/v1/slides/generate/api/v1/jobs/:idimport { 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' ? 'Generating…' : 'Generate Deck'} </Button> {deckUrl && <Text>Deck ready: <a href={deckUrl}>Download</a></Text>} </Box> ); } function buildPrompt(record) { return `Create a 10-slide deck for ${record.getCellValueAsString('Account')}. Pipeline: ${record.getCellValueAsString('Pipeline Value')}. Stage: ${record.getCellValueAsString('Stage')}. Notes: ${record.getCellValueAsString('Notes')}.`; } initializeBlock(() => <DeckGenerator />);
이렇게 하면 모든 Airtable 뷰 내에서 원클릭 "프레젠테이션 생성" 버튼을 사용할 수 있습니다. 확장 프로그램 패턴은 또한
globalConfigAirtable 데이터를 위한 2Slides API 페이로드
/api/v1/slides/generatepromptpagesthemelanguage{ "prompt": "Acme Corp의 12슬라이드 4분기 파이프라인 리뷰를 작성하세요. 파이프라인 가치: 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" }
웹훅 없이 진행 상황을 확인하려면
GET /api/v1/jobs/:idsuccessdownloadUrl.pptxpdfUrlpagesAirtable 워크플로우에 유용한 V1 관련 엔드포인트:
- — 프롬프트에서 프레젠테이션을 생성하는 기본 엔드포인트.
POST /api/v1/slides/generate - — 소스 PDF(예: 업로드된 Airtable 첨부 파일)를 받아 요약 프레젠테이션을 생성합니다.
POST /api/v1/slides/create-pdf-slides - — 기존 프레젠테이션의 구조를 복제합니다. 주간 고객 리뷰를 매번 동일한 템플릿으로 생성하고 싶을 때 유용합니다.
POST /api/v1/slides/create-like-this - — 각 슬라이드의 내레이션 오디오를 생성합니다. Loom 스타일의 비동기 업데이트를 위해 비디오 내보내기 파이프라인과 함께 사용하세요.
POST /api/v1/slides/generate-narration - — 모든 페이지별 이미지와 음성 파일을 ZIP으로 일괄 다운로드합니다. Airtable 첨부 파일 필드에 편리합니다.
GET /api/v1/slides/download-slides-pages-voices/:jobId - — 작업 상태 확인을 위한 폴링 엔드포인트.
GET /api/v1/jobs/:id - — 검색 가능한 테마 디렉토리로, Airtable 사용자가 연결된 레코드 필드를 통해 테마를 선택할 수 있습니다.
GET /api/v1/themes/search?q=corporate
4가지 실제 Airtable 기반 발표 자료 패턴
패턴 1: 영업 파이프라인 리뷰
베이스 구조:
Deals계정단계ARR담당자마지막 연락일리스크다음 단계트리거: 매주 금요일 오전 8시 스케줄,
단계프롬프트 구성: 모든 일치 레코드를 단일 프롬프트로 집계, 단계별 합계, ARR 기준 상위 5개 목록, 14일 이상 연락 없는 거래 플래그 표시.
pages: 12theme: corporate-navytone: executive결과: 매주 월요일 아침 영업 리더가 Airtable을 열면 "{날짜} 주의 파이프라인 리뷰"라는 제목의 발표 자료가 이미 동기화된 "주간 리뷰" 테이블에 첨부되어 있음. 수동 슬라이드 복사-붙여넣기 불필요.
패턴 2: 콘텐츠 캘린더 월간 리포트
베이스 구조:
Content제목게시일채널조회수참여율작성자트리거: 매월 1일, 지난 30일 레코드를 대상으로 자동화 실행.
프롬프트 구성: 참여율로 순위 매기기, 전월 대비 증감 계산, 채널별 그룹화. 모델에게 다음 구조의 10슬라이드 발표 자료 요청: 요약, 최고 성과, 저조 성과, 채널 믹스, 작성자 리더보드, 권장사항.
pages: 10theme: editorialincludeSpeakerNotes: true결과: 콘텐츠 책임자가 PowerPoint를 건드리지 않고 월간 리뷰 미팅에 가져갈 발표 자료 확보.
패턴 3: 프로젝트 트래커 분기별 리뷰
베이스 구조:
Projects고객상태완료율마일스톤장애물사용 시간예산 시간트리거: Airtable Extension의 수동 버튼, 한 번에 한 고객 범위로 제한.
프롬프트 구성: 지난 분기 해당 고객의 모든 프로젝트 추출, 완료 상태별 요약, 장애물 표시, 시간 활용률 계산. 발표 자료 구조: 표지, 분기 한눈에 보기, 프로젝트별 요약, 장애물 + 리스크, 다음 분기 예측, 권장 범위 조정.
pages: 14theme: consulting-slate결과: PM이 고객 레코드를 열고 "QBR 발표 자료 생성" 버튼을 누르면 1분 이내에 14슬라이드 결과물 완성. 검토 후 필요시 PowerPoint에서 편집하여 전송.
패턴 4: 투자자 CRM 업데이트
베이스 구조:
Investors펀드단계별 관심사마지막 미팅노트소개자트리거:
상태프롬프트 구성: 해당 투자자의 단계별 관심사에 맞춤화된 회사 업데이트 발표 자료 생성. 연결된
KPIspages: 15theme: startup-moderncreate-like-this결과: 모든 투자자 후속 미팅마다 창업자가 마스터 템플릿을 재구성하지 않고도 맞춤화되고 브랜드 일관성 있는 발표 자료 확보.
자주 묻는 질문
Airtable 첨부파일(PDF, 덱)을 2Slides API로 어떻게 전달하나요?
Airtable은 레코드 페이로드에서 첨부파일을 URL로 노출합니다. PDF 입력의 경우,
POST /api/v1/slides/create-pdf-slidessourcePdfUrlcreate-like-thisgeneratejobIdAirtable 롤업 및 수식 필드를 프롬프트에 사용할 수 있나요?
네, 사용해야 합니다. 롤업(총 ARR, 평균 거래 규모, 위험 프로젝트 수)은 덱을 유용하게 만드는 요약 수치를 정확히 생성합니다. Automation 스크립트에서 다른 필드와 동일한 방식으로 참조하세요 —
record.getCellValueAsString('Total ARR')2Slides 작업이 실패하면 어떻게 되나요?
실패한 작업은
/api/v1/jobs/:idstatus: "failed"errorDeck Status = Failed2Slides API 키를 Airtable 스크립트에서 어떻게 보호하나요?
Automations 스크립트의 경우, 단일 레코드 구성 테이블에 키를 저장하고 동적으로 읽거나, Zapier/Make의 환경 시크릿을 참조하는 입력 변수로 전달하세요. Extensions의 경우, 일회성 관리자 설정 화면을 통해
globalConfig.setAsync('TWO_SLIDES_API_KEY', value)여러 팀원이 속도 제한에 걸리지 않고 하나의 API 키를 공유할 수 있나요?
네. 2Slides 속도 제한은 Team 플랜 키에 대해 관대합니다(일반적으로 분당 60개 요청, 시간당 500개 요청). 이는 덱을 트리거하는 10-20명의 활성 Airtable 사용자를 편안하게 지원합니다. 더 높은 볼륨의 프로그래매틱 워크플로우의 경우 — 예를 들어, 2,000명의 고객에게 매일 밤 고객당 덱을 생성하는 경우 — 배치로 분할하고 호출을 분산시키거나, 더 높은 제한이 있는 Enterprise 키를 요청하세요.
핵심 요약
Airtable은 구조화되고 관계형이며 팀이 공유하는 데이터를 저장하는 데 뛰어납니다. PowerPoint는 사람에게 서사를 전달하는 데 뛰어납니다. 그 사이의 격차 — "이제 이것을 덱으로 만들어야 하는" 격차 — 는 영업 리더, 콘텐츠 마케터, PM, 창업자들에게 매주 수 시간을 소모하게 했습니다. 2026년, 이 격차는 단 하나의 웹훅 또는 단 하나의 버튼으로 해소됩니다.
이 가이드의 두 가지 방법은 전체 스펙트럼을 다룹니다: 노코드 경로는 인프라 없이 오후 한나절 만에 프로덕션에 도달하게 하고, Extension 경로는 Airtable 내부에 있는 네이티브 느낌의 "덱 생성" 버튼을 팀에게 제공합니다. 두 방법 모두 동일한
/api/v1/slides/generate모든 Airtable 뷰를 PowerPoint로 변환하세요 — 2Slides API 키를 받아 한 시간 이내에 Airtable 자동화에 연결하세요.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free