Offertes maken is tijdrovend en vaak repetitief. Je haalt klantgegevens op, vult een template in, personaliseert de tekst, stuurt ter review en wacht op ondertekening. Dit proces duurt gemiddeld 45 tot 90 minuten per offerte. Met Claude, n8n en PandaDoc comprimeer je dat naar 5 minuten kwaliteitscheck.
In deze handleiding bouw je een workflow waarbij een salesmedewerker in HubSpot op een knop klikt, waarna n8n automatisch CRM-data ophaalt, Claude een gepersonaliseerde offerte schrijft en PandaDoc de offerte opstelt en verstuurt voor elektronische ondertekening.
Wat je nodig hebt
Stap 1: PandaDoc template aanmaken
Maak in PandaDoc een offerte-template aan met variabele velden (tokens). PandaDoc gebruikt dubbele accolades voor tokens: {{klant_naam}}, {{bedrijfsnaam}}, {{offerte_inhoud}}, {{totaalbedrag}}, {{geldigheid}}. Ontwerp de template met je eigen huisstijl, logo en standaardclausules.
Noteer de Template ID na het opslaan (te vinden in de URL van de template: pandadoc.com/templates/TEMPLATE_ID). Die heb je later nodig.
Stap 2: HubSpot webhook instellen
In HubSpot maak je een Custom Action aan die een webhook triggert wanneer een deal naar de fase 'Offerte aangevraagd' gaat. Ga naar HubSpot Settings, Workflow, maak een deal-based workflow en voeg de webhook actie toe met jouw n8n webhook URL.
Stap 3: n8n Webhook node
Maak een nieuwe n8n workflow aan met een Webhook node als trigger. Kopieer de webhook URL en plak die in HubSpot. Stel de webhook in op POST met JSON body.
Stap 4: HubSpot klantdata ophalen
Voeg HubSpot nodes toe om extra klantdata op te halen die niet in de webhook zit: contactpersoon details (naam, e-mail, telefoonnummer) en bedrijfsinformatie (sector, bedrijfsgrootte, website). Gebruik de contactId en companyId uit de webhook payload.
Stap 5: Claude offerte-inhoud genereren
Voeg een HTTP Request node toe voor de Claude API. Dit is de kern: Claude schrijft de gepersonaliseerde offerte-inhoud op basis van de klantdata en dealinformatie.
Stap 6: Prijs berekenen
Voeg een Code node toe voor eventuele prijsberekening op basis van dealwaarde en BTW:
Stap 7: PandaDoc document aanmaken
Voeg een HTTP Request node toe voor de PandaDoc API om het document aan te maken vanuit je template:
Stap 8: Document versturen
Na aanmaak wacht je 5 seconden (PandaDoc heeft tijd nodig om het document te genereren) en stuur je het vervolgens:
Stap 9: HubSpot deal updaten
Update de HubSpot deal met de PandaDoc document ID en verplaats de deal naar de volgende fase 'Offerte verzonden':
Stap 10: Notificatie naar salesmedewerker
Stuur als laatste stap een Slack of e-mail notificatie naar de verantwoordelijke salesmedewerker met een link naar het PandaDoc document voor review:
Stap 11: PandaDoc signing webhook (bonus)
Maak een tweede n8n workflow die luistert op PandaDoc webhooks voor document_state_changed events. Zodra de klant ondertekent, update deze workflow automatisch de HubSpot deal naar 'Gewonnen' en stuurt een felicitatie naar het sales team. PandaDoc webhook instellen: ga naar Settings, Notifications, Webhook URL.
Troubleshooting
Probleem: PandaDoc geeft 'template not found'
Controleer of de template UUID correct is (niet de naam, maar de UUID uit de URL). Controleer ook of je PandaDoc API key de juiste rechten heeft (Documents: Create en Send).
Probleem: Claude tekst te lang voor PandaDoc token
PandaDoc tokens hebben een maximale lengte. Voeg in het Claude prompt toe: 'Max 600 woorden totaal'. Controleer ook de token limieten in jouw PandaDoc plan.
Probleem: HubSpot webhook triggert niet
Controleer of de workflow in HubSpot actief staat ('On'). Test handmatig door een deal handmatig naar de triggerfase te verplaatsen. Controleer in n8n de Execution History of de webhook payload binnenkomt.
Uitbreidingen
De ROI van deze workflow is snel berekend: als een salesmedewerker 10 offertes per maand maakt en dit systeem bespaart 70 minuten per offerte, levert dat 700 minuten per maand op. Dat is bijna twee volledige werkdagen die de salesmedewerker kan besteden aan klantgesprekken in plaats van administratie.