# Close Won in HubSpot when an Adobe Sign contract is signed

> The moment every signer finishes an Adobe Acrobat Sign agreement, the matching HubSpot deal flips to Closed Won, a note lands on the deal, and the owner gets a Slack DM.

- Workflow type: agent
- Services: Adobe Acrobat Sign, HubSpot, Slack
- Categories: Sales, Operations
- Published: 2026-07-17

## What it does

- Watches Adobe Acrobat Sign for agreements that have been signed by every participant.
- Figures out which HubSpot deal the contract belongs to by matching the signer's email to the deal's contact, with a name fallback.
- Updates the deal stage to Closed Won and drops a note recording who signed and when.
- Sends a direct Slack message to the deal owner with a link back to the deal.

## What you'll need

- An Adobe Acrobat Sign account you can send agreements from.
- A HubSpot login with permission to update deals and create notes.
- A Slack workspace where the deal owner can receive a direct message.
- The name of the pipeline stage you count as Closed Won (it varies by team).

## Prompt

Build an agent workflow that closes the loop on a signed contract: as soon as an Adobe Acrobat Sign agreement is completed by every participant, mark the matching HubSpot deal as Closed Won, drop a note on the deal recording the signing details, and DM the deal owner in Slack.

Trigger: webhook. Subscribe to Adobe Acrobat Sign's agreement-completed event so the workflow fires the instant the last signer finishes. The webhook payload includes the agreement ID.

Step 1 — Pull the agreement details. Call Adobe Acrobat Sign's Get Agreement to fetch the agreement name, status (confirm it is SIGNED or COMPLETED before continuing), and completion timestamp. Then call Get Agreement Members to list every participant, so we have all signer names and email addresses and can identify the primary signer (the first non-sender participant, typically the customer).

Step 2 — Find the matching HubSpot deal. This is the part that needs judgement, which is why the workflow is agent-flavored: there is no shared ID between an Adobe Sign agreement and a HubSpot deal, so reason across signals. First, use HubSpot's Search Contacts with the primary signer's email to find the contact record. Then use Get Deal on that contact's associated deals (or Search Deals filtered by the associated contact ID) to list candidate deals. If there is exactly one open deal for that contact, that is the match. If there are multiple, compare the agreement name against the deal names and pick the strongest fit. If no contact matches on email, fall back to Search Deals by the agreement name.

Step 3 — Confidence gate. If no candidate deal comes back, or the match is genuinely ambiguous (e.g. multiple contacts share the email, or none of the candidate deal names resemble the agreement title), do NOT update anything. Instead, send a Slack DM to the workflow runner (or a configured fallback recipient) explaining that a signed agreement came through but a deal match could not be determined, and include the agreement name and signer emails so a human can route it. This is a hard requirement — never update the wrong deal.

Step 4 — Update the deal and log the note. When there is a confident match, use HubSpot's Update Deal to set the deal stage to the pipeline's Closed Won stage. The exact stage ID differs per HubSpot account and pipeline, so surface this as a required input the user configures once at setup (do not hard-code a stage). Then use Create Note to attach a note to the deal that reads: "Contract executed via Adobe Sign on {completion date} — signed by {comma-separated signer names}." Include the Adobe Sign agreement ID in the note for auditability.

Step 5 — DM the deal owner. Use HubSpot's Get Deal (with owner properties) plus Get Owner to resolve the deal owner's email. Then use Slack's Look Up User by Email to find the owner's Slack user, Open a Conversation to get a DM channel, and Send a Message with the deal link (format: https://app.hubspot.com/contacts/{portalId}/record/0-3/{dealId}) and a one-line summary: "🎉 {agreement name} is signed — {deal name} moved to Closed Won." Use the slackbot integration (bot user), not the slack user integration, so the DM comes from the workspace bot rather than from the person who authenticated.

Edge cases to bake in: (a) if the deal is already in the Closed Won stage, skip the stage update but still create the note; (b) if the deal owner has no Slack account matching their HubSpot email, log the note but skip the DM without failing the run; (c) if the Adobe Sign webhook fires for an event that is not agreement completion (some accounts fan out multiple events), verify the agreement status via Get Agreement and exit early if it is not terminal.

## How to customize

- Pick which HubSpot pipeline stage counts as Closed Won for your team.
- Change the wording of the note left on the deal to match how your team records contract details.
- Adjust the Slack message copy, or add extra people (like the account manager or CS lead) to the DM.

## FAQ

### What happens if the workflow can't confidently match the contract to a deal?

Instead of updating the wrong deal, the workflow sends you a Slack heads-up with the agreement name and the signer emails so you can decide what to do.

### Does this work with any HubSpot plan?

Yes. As long as your HubSpot login can view contacts, update deals, and create notes, this workflow runs on any HubSpot tier that includes the Deals pipeline.

### How does it know which deal a contract belongs to?

It looks at the primary signer's email address and finds the HubSpot contact tied to that email, then checks the deals associated with that contact. If there is any ambiguity, it also compares the agreement's title to the deal names.

### Will it re-close a deal that is already Closed Won?

If the deal is already in your Closed Won stage, it still adds the contract-executed note so the paper trail is complete, but skips the redundant stage change.

### Can I use this with DocuSign or PandaDoc instead?

This particular workflow listens to Adobe Acrobat Sign. We have separate ready-to-run prompts for DocuSign and PandaDoc if that is what you use.

Use this prompt in General Input: https://www.generalinput.com/prompts/close-won-in-hubspot-when-an-adobe-sign-contract-is-signed