Automatically generate NDAs from Typeform responses, populate a Google Docs template, convert to PDF, and send via DocuSign using Make.com with idempotency and audit logs.
Introduction
You still copy a prospect’s details from Typeform into a Word or Google Doc, swap a few fields in the NDA template, export, upload to DocuSign, and then manually track whether the counterparty signed. That workflow works for occasional NDAs but breaks when volume grows, people are out, or you need an auditable, repeatable process.
This guide shows you how to automate the whole chain using Typeform, Google Docs, DocuSign, and Make.com. The flow captures the submission, fills a Google Docs NDA template, exports a PDF, creates a DocuSign envelope from a template or document, sends it for signature, writes an audit row to Google Sheets, and updates the Typeform response with links and status. By the end you will have a production-ready pattern with idempotency, basic error handling, and traceability.
What you will know by the end: exact modules to use in Make.com, field mappings, DocuSign envelope choices and OAuth guidance, and the small gotchas that trip teams in production.
What You'll Need
- Typeform account with the form to capture NDA details, webhooks enabled (paid plan required for webhooks)
- A Google Workspace account with a Google Docs NDA template and a Drive folder to store generated files
- DocuSign account with API access and either a reusable DocuSign template (recommended) or API access to create envelopes from PDFs
- A Make.com account to orchestrate the scenario (paid plan recommended for reliability and retries)
- A Google Sheets file for an audit log and idempotency tracking
- Permissions: Make sure your DocuSign integration uses JWT for server-to-server actions or an Authorization Code flow if a user must approve actions interactively
Notes on DocuSign authentication: for a headless server workflow use JWT grant after initial consent, it avoids interactive logins for each run. For details see DocuSign's JWT vs Authorization Code guidance in their developer docs.
How It Works (The Logic)
Trigger: new Typeform submission. Make.com receives the webhook, de-duplicates the submission, copies and populates your Google Docs NDA template, exports a PDF, and then either: (A) creates a DocuSign envelope from a DocuSign template and pre-populates fields; or (B) uploads the generated PDF and creates an envelope with recipient tabs. Make.com then writes the envelope id and DocuSign view URL to Google Sheets and updates Typeform (or emails the rep). A webhook listener or scheduled poll watches DocuSign envelope events and updates the audit row when the envelope is signed.
In short: Typeform → Make.com (de-dupe) → Google Docs templating → PDF export → DocuSign envelope create/send → Audit log + status updates.
Step-by-Step Setup
- Design the Google Docs NDA template
- Use unique placeholder tokens like {{company_name}}, {{signer_name}}, {{signer_email}}, {{effective_date}}. Keep tokens simple and consistent.
- If you plan to use DocuSign template tabs instead of absolute positions, ensure fields you want prefilled are in the DocuSign template and you use matching tabLabel values when you create the envelope.
Gotcha: avoid using the same placeholder for different meanings. Use {{signer_first}} and {{signer_last}} if you need separate fields.
- Build a Typeform that collects required NDA data
- Ask for required fields only: full name, email (required), company name, role, country, and any special clauses.
- Add a hidden field for a unique automation key if you want deterministic ids, otherwise use the Typeform response_id.
- Create the Google Sheets audit sheet
Columns: automation_key, typeform_id, created_at, draft_doc_id, pdf_drive_id, docusign_envelope_id, envelope_status, signed_at, run_status, error_message.
You will use this sheet to prevent duplicate sends and for manual reprocessing if something fails.
- Start a new Scenario in Make.com and add the Typeform webhook trigger
- Module: Typeform, Watch Responses (webhook). Select your form and fetch a sample payload.
- Immediately extract response_id and hidden automation_key (if used).
- Idempotency check: read the Google Sheet
- Module: Google Sheets, Search rows where typeform_id or automation_key equals the incoming id.
- If an entry exists with run_status = succeeded or envelope_pending, stop and exit. If no row or run_status = error, continue and append a provisional row with run_status = processing and a run_id.
This ensures retries or duplicate webhooks will not create multiple envelopes.
- Copy and populate the Google Docs template
- Module: Google Docs, Copy a Document. Create a copy named "NDA - {{company_name}} - {{response_id}}" in a drafts folder.
- Module: Google Docs, Replace Text. Replace each token with the Typeform values, mapping exactly.
Tip: keep the copied doc for audit or delete it later after PDF export if you want a tidy Drive.
- Export the Doc as PDF and save to Drive
- Module: Google Docs/Google Drive, Export file as PDF and then Upload the PDF into your NDA folder. Capture the Drive file ID and public view URL if required.
Gotcha: use drive permission settings carefully. For PDFs that you attach to DocuSign as source documents, you do not need public links. For audit copies you may store in a restricted folder.
- Create and send the DocuSign envelope
You have two patterns.
A) Envelope from a DocuSign template (recommended)
- Create a DocuSign template with recipient roles (e.g., Signer, CounterSigner) and define tabs with tabLabel values you will prefill.
- Module: DocuSign API call in Make.com (or HTTP module): Create Envelope from Template (POST /v2.1/accounts/{accountId}/envelopes). Supply templateId, templateRoles array mapping the role name to signer email/name, and the
tabs/templateFieldspayload to prefill values.
B) Envelope from generated PDF
- If you don't use a DocuSign template, POST the documents array with your PDF binary to Envelopes:create, set recipients, and specify tabs using absolute positions or request transformPdfFields=true if the PDF contains AcroForm fields.
Authentication: use JWT grant for server-to-server non-interactive flows. DocuSign requires initial consent for the impersonation user.
- Save DocuSign IDs and send the Typeform update
- After creating the envelope, capture envelopeId and the
viewUrlfor embedded signing if that pattern applies. - Update the Google Sheets audit row with envelope_id, pdf_drive_id, and envelope_status = sent.
- Optionally call Typeform (or use email) to update the respondent or notify internal staff with the DocuSign link.
- Watch envelope events and update status
- Option A: DocuSign Connect/webhooks. Create a webhook subscription for envelope events and point it at a Make.com webhook that updates the matching Google Sheets row (lookup by envelopeId).
- Option B: Poll DocuSign via scheduled scenario if you do not want to manage Connect.
When DocuSign returns status completed, write signed_at into the audit sheet and set run_status = succeeded. Optionally move the signed PDF from DocuSign to Drive using the API to download the final document and attach it to the audit row.
- Error handling and manual review
- If DocuSign returns a 4xx or 5xx, write the error_message into the audit sheet and set run_status = error. Post a short Slack or email notification to the ops user with the run_id and a link to the draft Doc in Drive so they can intervene.
- Add a manual retry button pattern by creating a support sheet or a Make.com webhook that triggers a re-run for the given run_id.
Real-World Business Scenario
A SaaS sales team captured NDA requests from enterprise prospects via a Typeform lead form. After automating with this flow, each NDA was generated, sent, and tracked without manual document edits. Legal saw a consistent audit trail in Google Sheets with direct links to the Drive PDF and the DocuSign envelope. The time from request to signature dropped from hours to under an hour for standard deals.
Common Variations
- Use DocuSign templates and prefilled tabs to avoid coordinates, map tabLabel values instead of absolute positions.
- Add a human approval gate: send the generated draft to a reviewer Slack channel and only create/send the DocuSign envelope after an approver clicks a review link.
- Enrich the Typeform submission with Clearbit or HubSpot data before populating the template, then include company details in the NDA header.
Putting this into practice
You now have a resilient pattern to convert Typeform submissions into signed NDAs using Google Docs, DocuSign, and Make.com with audit logging in Google Sheets. If you need PDF-only variants or alternate signature providers, our guide on PDF generation from Google Docs is directly relevant: see How to Generate a PDF from a Google Docs Template Using Make.com and Gmail. For related lead capture patterns that feed form data into your CRM first, compare our Typeform → HubSpot workflow: How to Connect Typeform to HubSpot and Auto-Create New Leads Using Make.com.
If you want this implemented and hardened for your team, Olmec Dynamics builds these exact automations for businesses and handles DocuSign integration, template design, and runbook creation. See what we do at https://olmecdynamics.com