Turn signed DocuSeal forms into HubSpot contacts and notes

By General Input

When a DocuSeal document is fully signed, the answers people typed become real HubSpot records, with the executed PDF filed in Drive.

Integrations

  • DocuSeal
  • HubSpot
  • Google Drive
  • Slack

Type

Agentic Task

Categories

  • Sales
  • Operations

When a DocuSeal submission is fully signed, I want the answers people typed into the form turned into real CRM records, not just a filed PDF. Trigger this workflow on the DocuSeal submission_completed poll event, which fires once every submitter has signed.

Start by calling DocuSeal Get Submitter for the completed submission to read the submitted field values along with the signer's name and email. DocuSeal fields are defined by text tags of the form {{Company Name;role=Signer1;type=text}}, so the answers come back as structured label and value pairs rather than free text. That structure is the whole point of this workflow, so lean on it.

Before writing anything to HubSpot, run an explicit mapping step from DocuSeal field labels to HubSpot properties. Keep this mapping in one clearly marked place near the top of the workflow so it is easy for me to edit later. Start with a sensible default set: Full Name to firstname and lastname, Email to email, Phone to phone, Job Title to jobtitle, Company Name to the company name property, Website or Domain to the company domain, and any address fields to the matching HubSpot address properties. Match labels case insensitively and tolerate small wording differences. If a DocuSeal label has no mapping, do not guess at a property name: collect it and include it in the note instead, so nothing the signer typed is silently thrown away.

Decide which mapped fields are required before writing anything. If the signer left a required field blank, or the value is only whitespace or an obvious placeholder such as N/A, do not write an empty value into the CRM. Skip that property entirely and collect the blank required fields into a list that you call out in both the note and the Slack message, so a human can chase the missing detail. Writing empty values into HubSpot is worse than leaving the property untouched.

Check HubSpot before creating anything. Use Search Contacts filtered on the signer's email address. If a contact already exists, reuse it and do not overwrite properties that already have content. Only when there is no match, use Create Contact with the mapped properties. Update the story accordingly in everything you write afterwards, so the note and the Slack message say whether this person was newly created or matched to an existing record.

Do the same for the organisation. Work out the counterparty name from the mapped company field, falling back to the domain of the signer's email address if the form did not ask for one, then use Search Companies to look for an existing match by name or domain. Only when there is genuinely no match, use Create Company, and associate the contact with it either way. Do not create a duplicate company just because the name is spelled slightly differently or has a different legal suffix.

Then use Create Note, associated with both the contact and the company, summarizing what the signer actually filled in. Write it so a salesperson can read it in ten seconds: the document name, the date it was signed, the mapped answers as label and value pairs, any extra answers that had no mapping, and an explicit line listing any required fields left blank.

Pull the executed PDF with Get Submission Documents, which returns the final signed files once the submission is complete. Upload it to Google Drive in a folder named after the counterparty. Look for that folder first with List Files using a Drive query on the folder name, and only use Create Folder when it does not already exist, so repeat business from the same counterparty collects in one place instead of scattering. Then upload with Upload File (Multipart), keeping the DocuSeal document name and the signing date in the file name. Multipart upload covers files up to 5MB, so use the resumable upload for anything larger.

Finish with Slack Send a Message to the channel my team watches. Keep it short: who signed, which document, whether the contact and company were newly created or matched to existing records, a link to the file in Google Drive, and a link to the HubSpot contact. If any required fields were left blank, put that on its own line so it is impossible to miss.

A few guardrails. If the submission has several signers, capture the one whose email belongs to the counterparty rather than an internal countersigner. If DocuSeal returns no field values at all, still file the PDF and post the Slack message, but say plainly that there was nothing to capture rather than creating an empty contact. If any single step fails, report which step failed in Slack rather than failing silently, since a half written CRM record is harder to spot than an obvious error.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredTurn Mailjet email clicks into ranked HubSpot follow-upsiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInAccount health board that puts product usage next to your CRMLook up a customer's full chat history mid conversationLusha prospecting workbench with credit-safe reveals