2Slides Logo
HubSpot + AI Presentation: Hướng Dẫn Tự Động Hóa Sales Deck (2026)
2Slides Team
18 min read

HubSpot + AI Presentation: Tài liệu tự động hóa Sales Deck (2026)

Đối với các đội ngũ bán hàng sử dụng HubSpot năm 2026, ROI của việc tự động hóa sales deck theo từng tài khoản có thể đo lường được: tiết kiệm trung bình 2–4 giờ mỗi tuần cho mỗi AE, tăng 12–18% tỷ lệ chuyển đổi giữa các cuộc họp, và giảm 30-60% sự chênh lệch trong chuẩn bị deck giữa các thành viên trong nhóm. Quy trình HubSpot + 2Slides năm 2026 tạo ra một sales deck được cá nhân hóa hoàn toàn cho bất kỳ tài khoản nào bằng cách sử dụng dữ liệu đã có sẵn trong HubSpot (công ty, giai đoạn deal, sản phẩm quan tâm, liên hệ chính, đối thủ cạnh tranh) thông qua ba phương thức tích hợp: HubSpot Workflow → Webhook → 2Slides API; HubSpot App Card tùy chỉnh với nút Generate Deck; lên lịch xử lý hàng loạt hàng ngày cho tất cả các deal ở giai đoạn cụ thể. Tài liệu này bao gồm webhook payload chính xác, mẫu prompt chuyển đổi các trường HubSpot thành nội dung deck, và quy trình 2Slides API (generate → jobs/:id → download) đang được các đội ngũ RevOps thực tế sử dụng trong sản xuất hiện nay.

Nếu bạn điều hành revenue operations cho một đội ngũ bán hàng trên HubSpot, bạn đã biết vấn đề: mỗi AE đều yêu cầu marketing hoặc sales enablement "chỉnh sửa một chút" deck trước cuộc gọi tiếp theo của họ. Nhân con số đó với bốn mươi rep và ba trăm deal đang tiến hành, bạn sẽ có một công việc toàn thời gian dán các template Google Slides vào dữ liệu CRM kiểu Salesforce — ngoại trừ việc bạn đang dùng HubSpot, nền tảng không có tương đương native với module Document Generation của Salesforce.

Tài liệu này chỉ cho bạn cách kết nối HubSpot với 2Slides V1 API để bất kỳ deal nào ở bất kỳ giai đoạn nào cũng có thể tạo ra một sales deck được cá nhân hóa, nhất quán thương hiệu, sẵn sàng triển khai — mà không cần con người chạm vào slide master. Các mô hình dưới đây được sử dụng bởi các đội ngũ RevOps trong B2B SaaS, an ninh mạng, và các công ty AI doanh nghiệp để thúc đẩy giá trị hợp đồng trung bình từ $40K đến $400K+.

Tại Sao Các Bản Trình Bày Từ HubSpot Luôn Thắng Thế

Lý do kinh doanh để tự động hóa các bản trình bày bán hàng từ HubSpot đến từ ba đòn bẩy có thể đo lường được.

Đòn bẩy 1: Thời gian thu hồi của AE. Quan sát nội bộ trên các khách hàng 2Slides với triển khai từ 20+ chỗ ngồi trở lên cho thấy các account executive dành 2–4 giờ mỗi tuần để tùy chỉnh bản trình bày — viết lại slide giới thiệu, cập nhật logo, dán vào điểm yếu của đối thủ cạnh tranh, thay đổi công cụ tính ROI. Với chi phí đầy đủ của một AE là $160K/năm, đó là $6,400–$12,800 mỗi AE mỗi năm chỉ cho công việc slide. Đối với đội ngũ bán hàng 40 người, bạn đang nhìn vào con số bảo thủ là $256K/năm trong năng lực được thu hồi.

Đòn bẩy 2: Tỷ lệ chuyển đổi giữa các cuộc họp. Các bản trình bày được tạo từ dữ liệu CRM trực tiếp — nghĩa là phân khúc doanh thu thực tế của công ty, chức danh thực tế của champion, đối thủ cạnh tranh thực sự được liệt kê trong hồ sơ giao dịch — chuyển đổi đặt lịch cuộc họp tiếp theo cao hơn 12–18% so với các bản trình bày template chung chung. Lý do rất đơn giản: tính cụ thể báo hiệu sự chuẩn bị kỹ lưỡng, và sự chuẩn bị kỹ lưỡng báo hiệu rằng một nhân viên bán hàng đáng để có cuộc họp thứ hai.

Đòn bẩy 3: Giảm độ biến thiên. Các AE trong tứ phân vị hàng đầu của bạn xây dựng các bản trình bày tuyệt vời. Tứ phân vị dưới cùng của bạn xây dựng các bản trình bày tầm thường làm rò rỉ pipeline. Tự động hóa kéo phần dưới lên. Trong dữ liệu cohort, các đội ngũ RevOps chạy tạo bản trình bày kích hoạt từ HubSpot báo cáo giảm 30–60% độ biến thiên chất lượng bản trình bày được đo bằng điểm QA của người quản lý.

Mô hình chung trên cả ba: bản trình bày không phải là sản phẩm, quá trình chuẩn bị mới là sản phẩm. Tự động hóa việc chuẩn bị là động thái có đòn bẩy cao nhất mà RevOps có thể thực hiện trong năm 2026. Để tìm hiểu sâu hơn về khía cạnh kích hoạt, xem hướng dẫn của chúng tôi về cách tạo bản trình bày kích hoạt bán hàng với AI.

Kiến trúc HubSpot + 2Slides 2026

Trước khi đi sâu vào từng phương pháp, đây là kiến trúc mà mọi triển khai đều tuân theo:

HubSpot CRM (deals, companies, contacts) ├── Trigger (workflow, app card, cron) Transformer Layer (serverless fn / Zapier / Make) │ - Builds prompt from CRM fields │ - Calls 2Slides V1 API 2Slides V1 API ├── POST /api/v1/slides/generate (returns jobId) ├── GET /api/v1/jobs/{id} (poll until status = success) └── GET /api/v1/slides/download-slides-pages-voices (asset URLs) Delivery (back to HubSpot deal as note, email to AE, Slack DM)

2Slides API không lưu trạng thái cho mỗi job, hoạt động bất đồng bộ và tính phí theo credit. Bạn xác thực bằng API key header

x-api-key: sk-2slides-...
. Mỗi lần tạo deck sẽ trả về
jobId
ngay lập tức, và bạn poll
/api/v1/jobs/{id}
cho đến khi trạng thái chuyển từ
pending
processing
success
. Khi thành công, bạn lấy file PPTX, PDF cuối cùng hoặc URL tài nguyên từng trang.

Phương pháp 1: HubSpot Workflow → Webhook → 2Slides API

Đây là cách tích hợp phổ biến nhất. HubSpot Workflow theo dõi thay đổi giai đoạn trên deal pipeline và kích hoạt webhook tới một serverless function giao tiếp với 2Slides API.

Bước 1: Tạo HubSpot Workflow

Trong HubSpot, vào Automation → Workflows → Create workflow → Deal-based. Thiết lập trigger enrollment:

  • Filter:
    Deal stage
    là bất kỳ
    Discovery Complete
    ,
    Demo Scheduled
    ,
    Proposal Sent
  • Re-enrollment: bật khi có thay đổi giai đoạn

Thêm action Send webhook:

  • Method:
    POST
  • URL:
    https://your-revops-fn.vercel.app/api/hubspot/generate-deck
  • Include các nhóm thuộc tính
    deal
    ,
    associated company
    , và
    primary contact

Bước 2: Transformer Function

Triển khai lên Vercel, Cloudflare Workers, hoặc AWS Lambda. Function nhận webhook từ HubSpot, soạn prompt cho 2Slides, và khởi chạy việc tạo bài thuyết trình.

// /api/hubspot/generate-deck.ts export async function POST(req: Request) { const payload = await req.json() const deal = payload.properties const company = payload.associations?.company?.properties ?? {} const contact = payload.associations?.contact?.properties ?? {} const prompt = buildDeckPrompt({ deal, company, contact }) const generateRes = await fetch('https://2slides.com/api/v1/slides/generate', { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-api-key': process.env.TWOSLIDES_API_KEY!, }, body: JSON.stringify({ prompt, slide_count: 12, language: 'en', aspect_ratio: '16:9', theme_id: process.env.BRAND_THEME_ID, // theme thương hiệu cố định của bạn metadata: { hubspot_deal_id: deal.hs_object_id, account: company.name, }, }), }) const { jobId } = await generateRes.json() // Lưu liên kết jobId -> deal để tra cứu sau await kv.set(`deal:${deal.hs_object_id}:job`, jobId, { ex: 86400 }) return Response.json({ ok: true, jobId }) }

Bước 3: Poll và Gửi Kết Quả

Một function thứ hai (được gọi bởi Vercel Cron mỗi 90 giây, hoặc bởi delayed workflow re-entry của HubSpot) kiểm tra

/api/v1/jobs/{id}
và khi thành công, ghi URL bài thuyết trình vào deal dưới dạng engagement note:

const jobRes = await fetch(`https://2slides.com/api/v1/jobs/${jobId}`, { headers: { 'x-api-key': process.env.TWOSLIDES_API_KEY! }, }) const job = await jobRes.json() if (job.status === 'success') { const assets = await fetch( `https://2slides.com/api/v1/slides/download-slides-pages-voices?jobId=${jobId}`, { headers: { 'x-api-key': process.env.TWOSLIDES_API_KEY! } } ).then(r => r.json()) await hubspotClient.crm.objects.notes.basicApi.create({ properties: { hs_note_body: `Bài thuyết trình mới đã sẵn sàng: ${assets.pptx_url}`, hs_timestamp: Date.now(), }, associations: [{ to: { id: deal.hs_object_id }, types: [{ category: 'HUBSPOT_DEFINED', typeId: 214 }] }], }) }

Đây là cùng một pattern mà chúng tôi sử dụng trong tự động hóa báo cáo hàng tuần với Zapier — một lệnh gọi generate, một lần poll, một lần gửi kết quả — chỉ khác là được kết nối qua HubSpot thay vì Zapier.

Phương pháp 2: Thẻ Ứng dụng HubSpot với Nút Tạo Bộ Trình bày

Phương pháp 1 là tự động. Phương pháp 2 là theo yêu cầu: AE mở một deal trong HubSpot, thấy một thẻ tùy chỉnh ở thanh bên phải, nhấp vào Tạo Bộ Trình bày, và bộ trình bày sẽ được gửi đến hộp thư đến của họ sau hai phút.

Phương pháp này sử dụng UI Extension của HubSpot (một phần của nền tảng Developer Projects).

Mã UI Extension

// src/app/extensions/DealDeckCard.tsx import { hubspot, Button, Flex, Text, Alert, LoadingSpinner, } from '@hubspot/ui-extensions' import { useState } from 'react' hubspot.extend(({ context, runServerlessFunction }) => ( <DeckCard context={context} runServerless={runServerlessFunction} /> )) function DeckCard({ context, runServerless }) { const [state, setState] = useState<'idle' | 'working' | 'done' | 'error'>('idle') const [deckUrl, setDeckUrl] = useState<string | null>(null) async function onClick() { setState('working') const { response } = await runServerless({ name: 'generateDeck', parameters: { dealId: context.crm.objectId }, }) if (response.deckUrl) { setDeckUrl(response.deckUrl) setState('done') } else { setState('error') } } return ( <Flex direction="column" gap="sm"> <Text>Tạo bộ trình bày bán hàng được cá nhân hóa cho tài khoản này bằng 2Slides.</Text> {state === 'idle' && <Button onClick={onClick}>Tạo Bộ Trình bày</Button>} {state === 'working' && <LoadingSpinner label="Đang xây dựng bộ trình bày (90–120 giây)" />} {state === 'done' && deckUrl && ( <Alert title="Bộ trình bày đã sẵn sàng"> <a href={deckUrl} target="_blank" rel="noreferrer">Mở bộ trình bày</a> </Alert> )} {state === 'error' && <Alert variant="danger">Tạo bộ trình bày thất bại — kiểm tra nhật ký RevOps.</Alert>} </Flex> ) }

Hàm Serverless Đi kèm

Hàm serverless được tham chiếu ở trên (

generateDeck
) nằm trong cùng một dự án ứng dụng HubSpot và gọi cùng luồng
/api/v1/slides/generate
+
/api/v1/jobs/{id}
như Phương pháp 1, nhưng nó chờ cho đến khi job thành công (hoặc hết thời gian chờ) trước khi trả về URL bộ trình bày cho thẻ.

// src/app/app.functions/generateDeck.js exports.main = async (context) => { const { dealId } = context.parameters const deal = await hubspotFetchDeal(dealId) const prompt = buildDeckPrompt(deal) const gen = await fetch('https://2slides.com/api/v1/slides/generate', { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-api-key': process.env.TWOSLIDES_API_KEY }, body: JSON.stringify({ prompt, slide_count: 12, theme_id: process.env.BRAND_THEME_ID }), }).then(r => r.json()) // Kiểm tra trong tối đa 3 phút for (let i = 0; i < 36; i++) { await new Promise(r => setTimeout(r, 5000)) const job = await fetch(`https://2slides.com/api/v1/jobs/${gen.jobId}`, { headers: { 'x-api-key': process.env.TWOSLIDES_API_KEY }, }).then(r => r.json()) if (job.status === 'success') { return { deckUrl: job.result?.pptx_url } } if (job.status === 'failed') throw new Error(job.error || 'tạo bộ trình bày thất bại') } throw new Error('hết thời gian chờ') }

Mô hình này — đối tượng CRM → thẻ extension → lời gọi API → kết quả ngay lập tức — là cùng một cách tiếp cận mà các đội marketing sử dụng khi họ mở rộng quy mô sản xuất nội dung; xem cách các đội marketing chạy bộ trình bày AI ở quy mô lớn.

Phương pháp 3: Tạo Hàng loạt Theo Lịch

Không phải bản trình bày nào cũng cần được tạo theo yêu cầu. Đối với những buổi đánh giá pipeline có thể dự đoán được — mỗi sáng thứ Hai, mỗi quý kinh doanh, mỗi lần làm mới giai đoạn MEDDPICC — một batch theo lịch cron sẽ rẻ hơn và đáng tin cậy hơn webhook thời gian thực.

Mô hình

Chạy một công việc hàng đêm truy vấn HubSpot cho mọi deal ở giai đoạn mục tiêu, tạo bản trình bày mới cho từng deal và gửi email tổng hợp buổi sáng cho AE.

// /api/cron/nightly-deck-refresh.ts export const runtime = 'nodejs' export const maxDuration = 300 export async function GET(req: Request) { // Vercel Cron bảo vệ bằng CRON_SECRET if (req.headers.get('authorization') !== `Bearer ${process.env.CRON_SECRET}`) { return new Response('Unauthorized', { status: 401 }) } const deals = await hubspotClient.crm.deals.searchApi.doSearch({ filterGroups: [{ filters: [ { propertyName: 'dealstage', operator: 'EQ', value: 'proposal_sent' }, { propertyName: 'hs_lastmodifieddate', operator: 'GT', value: String(Date.now() - 86400000) }, ], }], properties: ['dealname', 'amount', 'competitor', 'product_interest', 'champion_title'], limit: 100, }) const jobs = await Promise.all(deals.results.map(async (deal) => { const prompt = buildDeckPrompt(deal) const res = await fetch('https://2slides.com/api/v1/slides/generate', { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-api-key': process.env.TWOSLIDES_API_KEY! }, body: JSON.stringify({ prompt, slide_count: 10, theme_id: process.env.BRAND_THEME_ID }), }).then(r => r.json()) return { dealId: deal.id, jobId: res.jobId, owner: deal.properties.hubspot_owner_id } })) await enqueueDeliveryJobs(jobs) // SQS / Upstash QStash / Trigger.dev return Response.json({ enqueued: jobs.length }) }

Lên lịch trong

vercel.json
:

{ "crons": [ { "path": "/api/cron/nightly-deck-refresh", "schedule": "0 6 * * 1-5" } ] }

Sáu giờ sáng, các ngày trong tuần. AE mở email, bản trình bày đã sẵn sàng.

Mẫu Prompt Chuyển Đổi Dữ Liệu CRM Thành Nội Dung Deck

Yếu tố quyết định lớn nhất đến chất lượng deck chính là prompt. Prompt tốt mã hóa những gì một AE senior sẽ nói với nhân viên mới: "khi công ty là X, với champion ở vị trí Y, tập trung vào kết quả Z, thì xây dựng deck như thế này." Mẫu sẵn sàng để sao chép:

function buildDeckPrompt({ deal, company, contact }: Ctx) { return ` Tạo deck bán hàng 10-12 slide cho đánh giá phần mềm B2B. BỐI CẢNH TÀI KHOẢN - Công ty: ${company.name} - Ngành: ${company.industry ?? 'không xác định'} - Dải doanh thu hàng năm: ${company.annualrevenue ?? 'không xác định'} - Nhân viên: ${company.numberofemployees ?? 'không xác định'} - Website: ${company.domain} BỐI CẢNH DEAL - Giai đoạn deal: ${deal.dealstage} - Giá trị deal: $${deal.amount} - Sản phẩm quan tâm: ${deal.product_interest} - Use case ưu tiên: ${deal.primary_use_case} - Danh sách đối thủ: ${deal.competitors /* phân tách bằng dấu phẩy */} - Timeline đánh giá: ${deal.close_date} BỐI CẢNH CHAMPION - Tên: ${contact.firstname} ${contact.lastname} - Chức danh: ${contact.jobtitle} - Ưu tiên đã báo cáo: ${contact.priorities} CẤU TRÚC DECK 1. Slide tiêu đề — "${company.name} × <Thương Hiệu Của Bạn>: ${deal.primary_use_case}" 2. Thực trạng hiện tại của họ — 3 gạch đầu dòng, cụ thể cho ${company.industry} 3. Chi phí của việc không làm gì — định lượng sử dụng dải ${company.annualrevenue} 4. Phương pháp của chúng tôi — 3 trụ cột phù hợp với ${deal.primary_use_case} 5. Bằng chứng — 2 case study từ ${company.industry} (hoặc liên quan) 6. Điểm khác biệt so với ${deal.competitors} — xem phần battlecard bên dưới 7. Kế hoạch triển khai — 30/60/90 điều chỉnh theo ${deal.close_date} 8. Tóm tắt thương mại — phạm vi neo giá tại $${deal.amount} 9. Rủi ro và giải pháp giảm thiểu 10. Bước tiếp theo — phù hợp với ${deal.dealstage} GIỌ ĐIỆU - Phù hợp với đối tượng: ${contact.jobtitle} - Trang trọng nếu chức danh bao gồm VP, SVP, Chief, Director; ngược lại thì thân thiện. - Mỗi slide: một ý tưởng, một biểu đồ hoặc một trích dẫn, không có đoạn văn dài. `.trim() }

Giữ mẫu này dưới kiểm soát phiên bản. Khi marketing cập nhật framework thông điệp, bạn chỉ cần thay đổi một file và lần chạy cron tiếp theo sẽ áp dụng ngay.

Xử Lý Các Đối Thủ Cạnh Tranh

Trường

deal.competitors
trong HubSpot — dù đó là trường văn bản tùy chỉnh một dòng, multi-checkbox hay dropdown — đều là vô giá. Chèn một khối battlecard vào prompt một cách có điều kiện:

const BATTLECARDS: Record<string, string> = { 'Competitor A': ` Competitor A định vị trên <tuyên bố của họ>. Phản bác: <điểm chứng minh của bạn> + <khẩu hiệu 3 từ>. Câu hỏi mìn để đặt: "Khi nào cuộc kiểm toán bảo mật cuối cùng của họ được công bố?" `, 'Competitor B': ` Competitor B dẫn đầu với <góc độ của họ>. Phản bác: <lập luận phản bác của bạn> — tham chiếu case khách hàng <tên khách hàng> chuyển đổi. Câu hỏi mìn: "Hỏi về giới hạn mỗi chỗ ngồi của họ khi vượt quá 500 người dùng." `, } function battlecardSection(competitorsCsv: string) { const names = competitorsCsv.split(',').map(s => s.trim()).filter(Boolean) if (!names.length) return '' return ` BATTLECARDS CẠNH TRANH ${names.map(n => BATTLECARDS[n] ?? '').filter(Boolean).join('\n')} Sử dụng thông tin này để điền vào slide Phân Biệt. Không bao giờ nhắc tên đối thủ cạnh tranh quá hai lần. `.trim() }

Thêm kết quả của

battlecardSection(deal.competitors)
vào prompt của bạn. Bộ deck giờ đây mang theo khung cạnh tranh cấp độ AE — kiểu thông tin thường cần một cuộc gọi ba mươi phút với trưởng phòng tình báo cạnh tranh.

Lưu trữ battlecards trong bảng cơ sở dữ liệu thay vì hard-code chúng khi bạn có nhiều hơn mười đối thủ. Head of Product Marketing của bạn có thể chỉnh sửa chúng mà không cần tạo PR.

Câu Hỏi Thường Gặp

Làm thế nào để ngăn HubSpot tạo bản trình bày trùng lặp mỗi khi cập nhật thuộc tính?

Thêm một thuộc tính có tên

last_deck_generated_at
vào đối tượng deal và thêm bộ lọc trong HubSpot Workflow:
last_deck_generated_at
không xác định hoặc cách đây hơn 7 ngày. Hàm transformer của bạn nên ghi lại timestamp này vào HubSpot thông qua Deal API sau khi tạo thành công. Chỉ riêng điều này đã ngăn chặn 90% các lệnh gọi API lãng phí.

Chi phí này tốn bao nhiêu credits 2Slides?

Mỗi lệnh gọi

/api/v1/slides/generate
trừ credits dựa trên số lượng slide và các tiện ích bổ sung (tạo hình ảnh, thuyết minh bằng giọng nói). Đối với một bản trình bày bán hàng thông thường gồm 10 slide với hình ảnh có thương hiệu, dự kiến 20–40 credits cho mỗi bản trình bày. Một nhóm RevOps tạo 500 bản trình bày mỗi tháng sẽ rơi vào khoảng $150–$400 — thấp hơn nhiều so với chi phí nhân công AE tiết kiệm được chỉ trên một thương vụ doanh nghiệp duy nhất.

Tôi có thể tạo bản trình bày bằng ngôn ngữ khác tiếng Anh không?

Có. Truyền

language: 'de'
,
language: 'ja'
,
language: 'es'
, v.v. trong payload
/api/v1/slides/generate
. Mẫu prompt cũng nên bao gồm phần mở đầu được bản địa hóa khi bản ghi liên hệ của champion hiển thị ngôn ngữ ưa thích không phải tiếng Anh.

Làm thế nào để cố định thương hiệu hình ảnh để mọi bản trình bày trông giống hệt nhau?

Sử dụng

theme_id
cố định trong mọi yêu cầu tạo. Tạo theme thương hiệu của bạn một lần trong giao diện 2Slides, sao chép ID của nó và lưu trữ dưới dạng
BRAND_THEME_ID
trong các biến môi trường của bạn. Theme kiểm soát phông chữ, bảng màu, vị trí đặt logo và bố cục master — do đó nội dung thay đổi theo từng tài khoản trong khi giao diện vẫn giữ nguyên từng pixel.

Điều gì xảy ra nếu công việc tạo thất bại?

Poll

/api/v1/jobs/{id}
và kiểm tra
status
. Khi
failed
, response chứa
error
với mã có thể đọc được bằng máy. Thử lại một lần với exponential backoff; nếu thất bại lần thứ hai, đăng cảnh báo Slack lên kênh RevOps và chuyển sang bản trình bày mẫu tĩnh để AE không bị chặn trước cuộc gọi của họ.

Kết luận

HubSpot không cố gắng trở thành Salesforce, và điều đó hoàn toàn ổn — sự đơn giản chính là tính năng. Nhưng sự đơn giản cũng có nghĩa là nó không có sẵn chức năng tự động hóa tài liệu. Khoảng trống này là một tính năng, không phải lỗi, bởi vì điều đó có nghĩa là đội ngũ RevOps kết nối HubSpot với API tạo bài thuyết trình AI sẽ sở hữu bề mặt có giá trị nhất trong hệ thống công nghệ bán hàng của họ: bộ slide xuất hiện trước mặt người mua.

Ba phương pháp trên — workflow webhook, nút app card, batch theo lịch — bao phủm đầy đủ các kịch bản kích hoạt tạo tài liệu mà đội bán hàng cần. Chọn phương pháp phù hợp với giai đoạn phễu bán hàng của bạn. Các giai đoạn Discovery và Demo hầu như luôn cần tạo theo yêu cầu (app card). Các giai đoạn Proposal và Negotiation được hưởng lợi nhiều nhất từ tự động hóa khi thay đổi giai đoạn (workflow webhook). Đánh giá pipeline và chuẩn bị QBR là batch (cron). Chạy cả ba phương pháp và mọi deal trong pipeline sẽ có một bộ deck mới, trung thực với CRM, trong tầm tay, mỗi ngày.

Tự động hóa bộ slide bán hàng từ HubSpot — lấy API key 2Slides và tích hợp vào workflow tiếp theo của bạn trong vòng chưa đầy một ngày.

About 2Slides

Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.

Try For Free