Skip to main content
Question

Automatically Void DocuSign Envelope Based on Salesforce Field Update

  • April 2, 2026
  • 3 replies
  • 17 views

Forum|alt.badge.img+1

Hi Team,

We have a requirement where, based on a field update in Salesforce, we need to automatically void a DocuSign contract that has already been sent to the customer.

I am new to DocuSign development and need guidance on the following:

  1. How to create a DocuSign Developer Account
  2. How to use DocuSign APIs to void an envelope that is already sent
  3. Best approach to integrate Salesforce with DocuSign so that, when a Salesforce field value changes, the related DocuSign envelope is automatically voided
  4. Any recommended best practices or sample implementations for this use case

If anyone has experience with DocuSign + Salesforce integration or has implemented a similar scenario, your help or pointers would be greatly appreciated.

Thanks in advance!

3 replies

Forum|alt.badge.img+1

Hi ​@Vishnu Mannaru ,

 

Please refer to the below link for DocuSign Developer Account Registration:

Docusign Developer AccountDocusign Developer Account

 

Please refer to the below link for DocuSign Integration in SF:

Setting Up DocuSign Integration

 

Best Regards,

Tom


Leandro.Reis
Docusign Employee
Forum|alt.badge.img+4
  • Docusign Employee
  • April 3, 2026

Hi ​@Vishnu Mannaru,

I hope this message finds you well.

  • Creating a Docusign developer account
    You can create a free Docusign Developer Account at developers.docusign.com. Sign up with your email, verify it, and you’ll get access to the demo (sandbox) environment, API keys, and the Docusign web UI for testing.

  • Voiding an already-sent envelope via Docusign APIs
    In the eSignature REST API, voiding is done by updating the envelope’s status to voided and providing a voidedReason in the PUT /v2.1/accounts/{accountId}/envelopes/{envelopeId} call. The envelope must still be in a Sent/Delivered (i.e., not completed) state, and the caller must be the envelope owner or have appropriate permissions.

  • Integrating Salesforce so a field change voids the envelope
    The recommended approach is to handle the automation on the Salesforce side and call Docusign from there:

    • Use Docusign Apps Launcher / eSignature for Salesforce Apex Toolkit in your Salesforce org.
    • Store the related Docusign Envelope ID on the Salesforce record.
    • Use a Flow or Apex trigger that runs when your target Salesforce field changes, and in that logic call the Apex Toolkit’s dfsle.StatusService.voidEnvelope(docuSignId, reason) method to void the envelope programmatically.
  • Best practices / sample patterns

    • Implement and test everything in a Salesforce sandbox connected to a Docusign Developer Account (never connect lower-env Salesforce to production Docusign).
    • Make the void condition explicit (e.g., only when the status moves to a specific value) and log the void reason on the Salesforce record.
    • Ensure the user/context used for the call is the envelope owner, since voiding from Salesforce is restricted to the original sender when using the Docusign Envelope Status component.
    • Monitor and handle errors (for example, via the Docusign Logs object and/or Salesforce error handling) so a failed void doesn’t silently pass.

The information above and much more can be found in our documentation available for all customers. Please see some useful links below:

I hope this information is helpful, but if you’re having issues while implementing the process, please reach out to the support team and we can assist you moving forward.

Best regards,

Leandro Reis


Forum|alt.badge.img+1

Hi ​@Leandro.Reis,

Thanks for the update and details.

We need to void an envelope when a Salesforce field changes. However, we are using DocuSign CLM to send envelopes and are not using DAL or the eSignature managed package, and envelopes are not stored in Salesforce.

Could you please advise how to void a CLM‑generated envelope based on a Salesforce field change, and how to handle envelope mapping in this scenario?