

Automatizza le Presentazioni di Onboarding Clienti dai Deal Chiusi-Vinti (2026)
Per automatizzare le presentazioni di onboarding clienti, attiva un webhook quando un deal raggiunge lo stato Closed Won in HubSpot, Salesforce o Pipedrive, mappa i campi del deal in un prompt con un nodo Set di n8n e chiama l’endpoint 2Slides POST /api/v1/slides/generate per ottenere un PPTX modificabile da un tema fisso. Un secondo workflow pianificato costruisce la presentazione di revisione a 90 giorni dai dati di utilizzo. Ogni presentazione di kickoff di 8 pagine costa 80 crediti, circa $0,20, e arriva nello Slack del CSM circa 30 secondi dopo la chiusura del deal. Progettato per operazioni Customer Success e ingegneri RevOps.
Punti chiave
- Un webhook Closed-Won più due nodi HTTP Request in n8n trasformano i campi CRM in una presentazione di onboarding modificabile di 8 pagine per 80 crediti (circa $0,20).
- L’endpoint Fast PPT
generaterestituisce un PPTX nativo, così il CSM può modificare il piano 30/60/90 giorni prima della chiamata di kickoff invece di ricostruirlo. - Un workflow pianificato si attiva 85 giorni dopo il kickoff, estrae metriche di adozione dal tuo data warehouse e produce una presentazione di revisione a 90 giorni di 10 pagine per 100 crediti.
- Un solo
themeIdper ogni cliente mantiene le presentazioni coerenti con il brand;create-like-thiscon la tua slide di brand comereferenceImageUrlgenera una versione con design da immagine a 1.010 crediti per 10 pagine. - L’API consente 6 richieste al minuto per chiave, quindi un picco di chiusure di fine trimestre richiede una coda con intervallo di 10 secondi.
A chi è rivolto
Gestisci operazioni Customer Success o RevOps e ogni nuovo cliente comporta sempre le stesse 45 minuti di lavoro: copiare le note del deal in un template di kickoff, riscrivere gli obiettivi, redigere un piano a 90 giorni, poi ripeterlo con i numeri di utilizzo prima della prima review aziendale. Questa ricetta elimina il livello di copia-incolla lasciando però il CSM in controllo del PPTX finale.
Salta questa ricetta se la tua presentazione di onboarding è un PDF statico che non cambia mai per cliente; un link condiviso costa meno di qualsiasi generatore di presentazioni customer success.
Il workflow a colpo d’occhio
| Passo | Strumento | Cosa succede | Endpoint 2Slides / crediti |
|---|---|---|---|
| 1 | CRM (HubSpot, Salesforce, Pipedrive) | Lo stato del deal cambia in Closed Won; il webhook si attiva con l’ID del deal | nessuno |
| 2 | n8n Webhook + HTTP Request + Set | Recupera deal, contatti e note; li mappa in un prompt | nessuno |
| 3 | n8n HTTP Request | Invia il prompt con un themeId fisso e mode: "async" | POST /api/v1/slides/generate, 10 crediti/pagina |
| 4 | n8n Wait + HTTP Request | Poll ogni 10 s finché status è success o failed | GET /api/v1/jobs/{jobId}, gratuito |
| 5 | n8n Slack o nodo Email | Pubblica il downloadUrl al CSM; lo scrive nel CRM | nessuno |
| 6 | n8n Schedule Trigger + query warehouse (giorno 85) | Estrae metriche di adozione, costruisce il prompt per la review a 90 giorni | POST /api/v1/slides/generate, 10 crediti/pagina |
| 7 | Percorso premium opzionale | Slide di brand come referenceImageUrl per una review con design da immagine | POST /api/v1/slides/create-like-this, 10 + 100 crediti/pagina |
Passo 1: Ottieni una API key e conferma l’autenticazione
Crea una chiave nella scheda API Keys su 2slides.com/api. Ogni account riceve 500 crediti gratuiti alla registrazione, sufficienti per 6 presentazioni di kickoff, e la chiave funziona senza abbonamento. Salvala in n8n come credenziale Header Auth e nel tuo scheduler come SLIDES_API_KEY; non incollarla mai nel corpo di un nodo o in uno script lato browser.

Verifica la chiave prima di collegare altro:
curl https://2slides.com/api/v1/echo \
-H "Authorization: Bearer $SLIDES_API_KEY"Una risposta 200 significa che l’autenticazione funziona. Un 401 di solito indica uno spazio finale nella chiave incollata.
Passo 2: Scegli un tema di onboarding e fissalo
Cerca nella libreria template una volta, scegli un tema con una copertina pulita, un layout timeline e un layout contatti, e codifica il suo themeId. La ricerca è gratuita e restituisce il themeId più i metadati di oltre 1.500 template.
curl "https://2slides.com/api/v1/themes/search?query=customer%20onboarding%20timeline&limit=5" \
-H "Authorization: Bearer $SLIDES_API_KEY"
Mantieni l’automazione delle presentazioni di onboarding coerente con un solo themeId
La coerenza del brand deriva da una sola decisione: ogni presentazione di kickoff e ogni review a 90 giorni usa lo stesso themeId. Il cliente vede gli stessi colori e layout al giorno 1 e al giorno 90, e il CSM non deve mai ridisegnare nulla. Se il tuo team di design ha un template approvato, la guida al template on-brand mostra come inserirlo nella libreria così che il tuo themeId punti al tuo design.
Opzione premium: create-like-this con la tua slide di brand
Per account strategici, sostituisci la chiamata Fast PPT con POST /api/v1/slides/create-like-this e passa un URL pubblico di una slide di brand approvata come referenceImageUrl. La pipeline ricava l’intero sistema di design da quell’immagine e restituisce slide con design da immagine in PDF più immagini per pagina. L’output non è un PPTX modificabile, quindi usalo per presentazioni che il CSM mostra ma non modifica; budget 10 crediti di pianificazione più 100 crediti per pagina a 2K.
Passo 3: Trasforma i campi CRM in un template prompt
Il percorso Fast PPT è quello che un CSM userebbe manualmente in Fast PPT: incolla contenuti, scegli un tema, ricevi un PPTX. L’API automatizza l’incolla. Il tuo compito è scrivere bene il testo da incollare, una volta, come template.

Nel nodo Set di n8n, mappa le proprietà CRM in nomi generici così il template funziona con qualsiasi CRM: company, csmName, plan, seats, startDate, dealNotes (note di scoperta o campo "obiettivi cliente"), e contacts (titoli, sponsor e admin segnalati). Poi costruisci userInput da un template come questo (sintassi espressione 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.L’istruzione del placeholder tra parentesi è importante: poiché l’output è un PPTX modificabile, il CSM può cercare [ e riempire ogni lacuna in due minuti invece di correggere otto slide per dettagli inventati.
Ecco la chiamata con valori realistici, in modalità sincrona predefinita, che restituisce la presentazione finita in una risposta:
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."
}'La risposta appare come { "success": true, "data": { "jobId": "...", "status": "success", "downloadUrl": "https://..." } }. Otto pagine costano 80 crediti. Copia il file nel tuo storage invece di affidarti al link di download a lungo termine.
Passo 4: Automatizza le presentazioni di onboarding clienti dal webhook Closed-Won in n8n
Questo è il percorso webhook closed won verso slides. Ogni CRM lo attiva in modo leggermente diverso:
- HubSpot: sottoscrivi
deal.propertyChangesudealstagein un’app privata e filtra in n8n perclosedwon. I payload portano solo gli ID, non l’intero deal, quindi recupera il record dopo (documentazione webhook HubSpot). - Pipedrive: sottoscrivi l’evento "deal aggiornato" e filtra
status = won. - Salesforce: un Flow triggerato da record su Opportunity dove
StageName = Closed Won, con una chiamata HTTP al tuo URL webhook n8n.
Il workflow n8n, nodo per nodo:
- Trigger webhook (POST): riceve il payload CRM.
- IF: continua solo se lo stage è Closed Won e
onboarding_deck_urlè vuoto, così i retry del webhook non generano una seconda presentazione. - HTTP Request (GET, API CRM): recupera deal, contatti e note.
- Nodo Set: mappa i campi del Passo 3 e costruisce
userInput. - HTTP Request (POST generate):
https://2slides.com/api/v1/slides/generatecon credenziali Header Auth e corpo JSON{ themeId, userInput, responseLanguage: "English", mode: "async" }. Async restituiscedata.jobIdin meno di un secondo, così nessuna esecuzione n8n tiene aperta una connessione lunga. - Nodo Wait: 10 secondi.
- HTTP Request (GET jobs):
https://2slides.com/api/v1/jobs/{{ $json.data.jobId }}. - IF:
successcontinua;pendingoprocessingtorna a Wait;failedinvia un alert Slack al canale ops. - Nodo Slack (o Gmail/Outlook): manda un messaggio al CSM con nome cliente,
downloadUrl, data kickoff e link al deal. - HTTP Request (PATCH, API CRM): scrive
downloadUrlinonboarding_deck_urlcosì l’IF lo vede la prossima volta.
Se il tuo team chiude 20 deal nell’ultima ora di un trimestre, aggiungi un ciclo batch con un Wait di 10 secondi prima di ogni invio; generate consente 6 richieste al minuto per chiave e l’endpoint jobs 10 al minuto. Il walkthrough n8n e 2Slides spiega in dettaglio setup credenziali e polling, e il post automazione sales deck HubSpot mostra lo stesso schema per deck pre-vendita.
Per correttezza: l’API Gamma (developers.gamma.app) documenta una ricetta simile n8n più HubSpot per onboarding deck. Le chiavi Gamma API richiedono un piano Pro, mentre le chiavi 2Slides funzionano su qualsiasi account; 2Slides è il nostro prodotto, quindi considera questo nel confronto. La documentazione nodo HTTP Request n8n vale per entrambe le ricette.
Passo 5: Pianifica l’automazione del deck QBR per il giorno 85
Le presentazioni di kickoff si basano su parole; quelle di review su numeri, quindi il trigger cambia da webhook a pianificazione. Un Schedule Trigger giornaliero in n8n (o un cron job) seleziona ogni cliente il cui kickoff_date è 85 giorni fa, estrae metriche di utilizzo dal tuo warehouse o API analytics e genera una presentazione di review di 10 pagine. Cinque giorni di anticipo permettono al CSM di verificare i numeri e correggere i placeholder prima della chiamata a 90 giorni.
Mantieni da 8 a 12 numeri; più di così la presentazione sembra un export di dashboard. La guida al deck QBR ha un outline slide per slide per le review trimestrali dopo il giorno 90.
La versione Node.js qui sotto mostra il ciclo completo submit, poll, download ed è lo stesso codice che riutilizzeresti per un job API di automazione QBR trimestrale:
// 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); });Ogni presentazione di review di 10 pagine costa 100 crediti, circa $0,25. Il ciclo gestisce un cliente alla volta apposta; con un intervallo di 10 secondi resti sotto il limite anche se 30 clienti raggiungono il giorno 85 lo stesso giorno.
Come dovrebbe essere una buona presentazione di review a 90 giorni
Prima di finalizzare il prompt di review, guarda come deck metric-driven forti affrontano il compito. Le due slide qui sotto provengono da un aggiornamento investitori Grab ospitato nella Galleria 2Slides; sono deck di riferimento per ispirazione di design, non output API di questo workflow.


Tre lezioni si trasferiscono. Parti con un numero per slide, non una tabella di dodici. Abbina ogni metrica all’obiettivo kickoff del cliente così la review chiude un cerchio che ricordano di aver aperto. Dai agli issue aperti una slide con i responsabili. Per riutilizzare questo linguaggio visivo invece di un tema template, passa uno di questi URL slide come referenceImageUrl a create-like-this.
Quanto costa
Fast PPT costa 10 crediti per pagina. I crediti costano $0,0025 ciascuno nel pacchetto da $5 (2.000 crediti) e $0,002 ciascuno nel pacchetto da $80 (40.000). Considera una presentazione kickoff di 8 pagine e una review di 10 pagine per cliente.
| Volume | Presentazioni al mese | Crediti al mese | Costo approssimativo |
|---|---|---|---|
| 20 nuovi clienti | 20 kickoff + 20 review = 40 | 20 x 80 + 20 x 100 = 3.600 | $9 (due pacchetti da $5 coprono 4.000 crediti) |
| 500 nuovi clienti | 500 kickoff + 500 review = 1.000 | 500 x 80 + 500 x 100 = 90.000 | circa $180 al livello $80 = 40.000 |
| Premium: 20 review con design da immagine (2K, 10 pagine) | 20 | 20 x (10 + 1.000) = 20.200 | circa $43 (il pacchetto da $42,50 è 20.000 crediti) |
Al livello 20 clienti il costo API è $0,45 per cliente per entrambi i deck, contro circa 30 ore di tempo CSM al mese per la versione manuale.
Fast PPT o slide con design da immagine per questo caso d’uso?
| Domanda | Fast PPT generate (PPTX modificabile) | create-pdf-slides / create-like-this (design da immagine) |
|---|---|---|
| Il CSM lo modifica prima della chiamata? | Sì, default per i deck kickoff | No, output PDF più immagini per pagina |
| Costo per 10 pagine | 100 crediti, circa $0,25 | 1.010 crediti a 2K, circa $2,53 |
| Controllo brand | Un solo themeId, o template caricato da te | Sistema di design derivato da un referenceImageUrl |
| Narrazione o MP4 per video review? | Non supportato | generate-narration (210 crediti/pagina) + download-slides-pages-voices |
Regola pratica: i deck kickoff sono sempre Fast PPT perché vengono modificati. Per le review a 90 giorni, usa Fast PPT di default e riserva create-like-this per account top-tier o un video narrato che lo sponsor può guardare senza riunione.
Errori comuni
- I picchi di fine trimestre superano il limite di richieste.
generateconsente 6 richieste al minuto per chiave. Serializza gli invii con un Wait di 10 secondi invece di eseguire un’esecuzione per ogni webhook. - API key nel posto sbagliato. Tieni la chiave in una credenziale n8n o in una variabile ambiente server. Non chiamare mai l’API da widget browser o card CRM lato client.
- Provare a narrare un deck Fast PPT.
generate-narrationaccetta job solo dacreate-pdf-slidesecreate-like-this. Per un video narrato, genera la review concreate-like-thisfin dall’inizio. - Codici lingua invece di nomi.
responseLanguageaccetta"Spanish"o"Japanese", nonesoja. Mappa il campo locale del CRM in un nome lingua nel nodo Set. - Inserire tutta la timeline del deal nel prompt. Ventiquattro pagine di note producono un deck confuso. Riassumi in 3 obiettivi e 5 fatti in un nodo Code prima, o usa una proprietà CRM dedicata "obiettivi cliente".
- Deck duplicati da retry webhook. I CRM ritrasmettono in caso di timeout. Scrivi
downloadUrlnel deal e controlla prima di generare.
Domande Frequenti
Posso automatizzare le presentazioni di onboarding clienti senza n8n?
Sì. Il workflow sono due chiamate HTTP più un polling, quindi Zapier, Make, un Flow Salesforce con chiamata HTTP o lo script Node.js da 60 righe del Passo 5 funzionano tutti. n8n è comodo perché i nodi Wait e IF rendono visibile il loop di polling, ma gli endpoint e il costo di 10 crediti per pagina sono identici qualunque orchestratore scegli.
Quanto tempo impiega a generarsi una presentazione kickoff dopo la chiusura del deal?
I deck Fast PPT finiscono tipicamente in circa 30 secondi. Nel flusso async la chiamata submit restituisce un jobId in meno di un secondo, il primo poll dopo 10 secondi di solito mostra processing, e il secondo o terzo poll restituisce success con un downloadUrl. Il CSM di solito vede il messaggio Slack entro un minuto dal cambio di stato.
Il CSM può modificare la presentazione di onboarding generata?
Sì. L’endpoint generate restituisce un PPTX nativo costruito da un template progettato, quindi testo, ordine e layout sono modificabili in PowerPoint, Keynote o Google Slides. Il prompt del Passo 3 chiede placeholder [CSM to confirm] dove il CRM manca di un dettaglio, trasformando la modifica in una rapida ricerca e sostituzione invece che in una riscrittura.
Quali dati dovrebbe includere la presentazione di review a 90 giorni?
Passa da 8 a 12 numeri: utenti attivi settimanali rispetto ai posti, funzionalità adottate, workflow o report automatizzati, ticket di supporto aperti e ancora aperti, settimane attive su 12, e progresso su ogni obiettivo kickoff. Estrali al giorno 85 così il CSM ha cinque giorni per verificare prima della chiamata, e includi gli obiettivi originali per chiudere il cerchio.
Questo generatore di presentazioni customer success supporta clienti non inglesi?
Sì. Imposta responseLanguage con un nome lingua come "Spanish", "Portuguese" o "Japanese", e il contenuto della presentazione sarà scritto in quella lingua mentre il tema resta lo stesso. 2Slides supporta oltre 20 lingue di output. Mappa il campo locale del CRM in un nome lingua nel nodo Set così ogni cliente riceve automaticamente una presentazione nella sua lingua di lavoro.
Prossimi passi
- Ottieni una API key su 2slides.com/api. I 500 crediti gratuiti coprono 6 presentazioni kickoff, sufficienti per automatizzare onboarding clienti per i prossimi deal closed-won prima di acquistare.
- Scopri come altri team usano gli stessi endpoint nell’hub AI presentation API use cases by team.
- Estendi la pipeline con la guida al deck QBR per il secondo trimestre in poi, e la guida al template on-brand per puntare
themeIdal tuo design approvato.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free