7.9 KiB
Quick Start Guide
✅ Phase 2 Complete: Code Development
All Apex classes and tests have been created! Here's what you have:
📦 Code Files Included in This Package
Main Classes:
DocusignCompositeEnvelopeBuilder.cls- Invocable method for Flow integration (uses dfsle toolkit)DocusignEnvelopeRequest.cls- Invocable request parameter objectDocusignEnvelopeRequestHandler.cls- Request validation helperDocusignEnvelopeResult.cls- Invocable result object
Test Classes:
DocusignCompositeEnvelopeBuilderTest.clsDocusignEnvelopeRequestHandlerTest.cls
Notes on legacy artifacts:
- The repository contains a legacy
Docusign_Configuration__ccustom object and older REST-helper classes in docs, but the active implementation uses thedfsle(DocuSign for Salesforce managed package) toolkit anddfsle__EnvelopeConfiguration__crecords. The legacy custom setting/object is not required for the current Flow + Apex approach.
All .cls-meta.xml files use API version 60/61 as shown in each file.
🚀 Next Steps (Deployment)
Step 1: Open Project in VS Code
cd ~/.openclaw/workspace/projects/salesforce-composite-envelope-builder/composite-envelope-builder
code .
Step 2: Install Salesforce Extension Pack (if not already installed)
In VS Code:
- Open Extensions (Ctrl+Shift+X)
- Search for "Salesforce Extension Pack"
- Click Install
Step 3: Authorize Your Salesforce Org
For Sandbox:
sf org login web --alias my-sandbox --instance-url https://test.salesforce.com
For Production:
sf org login web --alias my-production --instance-url https://login.salesforce.com
This will open a browser window. Log in with your Salesforce credentials.
Step 4: Set Default Org
sf config set target-org my-sandbox
Step 5: Deploy to Sandbox
sf project deploy start --target-org my-sandbox
Expected output:
Deploying v61.0 metadata to my-sandbox
Status: Succeeded
Component Deployed:
ApexClass DocusignCompositeEnvelopeBuilder
ApexClass DocusignAPIService
ApexClass DocusignCredentials
ApexClass DocusignCompositeEnvelopeBuilderTest
ApexClass DocusignAPIServiceTest
ApexClass DocusignCredentialsTest
CustomObject Docusign_Configuration__c
Step 6: Run Unit Tests
sf apex run test --wait 10 --result-format human --code-coverage --target-org my-sandbox
Expected output:
=== Test Summary ===
Outcome: Passed
Tests Ran: 39
Passing: 39
Failing: 0
Skipped: 0
Pass Rate: 100%
Code Coverage: 85%+
Step 7: DocuSign Integration / Credentials (note)
-
The current implementation uses the
dfsleApex Toolkit from the DocuSign for Salesforce managed package to send composite envelopes. That toolkit stores and references its templates/configuration using managed-package objects such asdfsle__EnvelopeConfiguration__c. -
You do NOT need to create the legacy Named Credential / custom setting (
Docusign_Configuration__c) for the dfsle-based flow. Ensure theDocuSign for Salesforce (dfsle)managed package is installed and its envelope configurations/templates exist in Production. -
If you intentionally plan to use the older REST-based helper classes (legacy), then follow the steps below only:
- Create a Named Credential (Setup → Named Credentials → New)
- Example name:
DocusignAPI - Example URL:
https://na3.docusign.net/restapi/v2.1
- Example name:
- (Optional legacy) Configure
Docusign_Configuration__ccustom setting/object withAccount_Id__candBase_URL__cif your older REST helpers require it. - Add Remote Site or appropriate callout permissions for external DocuSign endpoints.
- Create a Named Credential (Setup → Named Credentials → New)
Step 8: Update Screen Flow
See docs/deployment-guide.md section 5 for detailed Flow configuration steps.
Summary:
- Open your existing form selection Flow
- Add Apex Action element (after template selection)
- Select action:
Send Composite Docusign Envelope - Map inputs:
templateIds→{!SelectedTemplateIds}(from checkboxes)recordId→{!recordId}language→{!SelectedLanguage}emailSubject→ "Please review and sign these forms"- Note: The Apex layer will prefix the subject with
Docusign:automatically and will truncate the final subject to 100 characters to satisfy Docusign limits.
- Store outputs:
envelopeId→{!EnvelopeId}success→{!Success}errorMessage→{!ErrorMessage}
- Add Decision element for success/error handling
- Save & Activate
Step 9: Test Integration
- Navigate to Salesforce record
- Launch Screen Flow
- Select language: English
- Check 2-3 templates
- Click Send
- Verify:
- Success message shown
- Envelope ID displayed
- Check Docusign: envelope created with multiple documents
- Recipients receive ONE email
📚 Documentation
All docs are in the docs/ folder:
- requirements.md - What we're building and why
- design.md - Architecture, sequence diagrams, data flow
- api-reference.md - Docusign REST API details
- deployment-guide.md - Complete deployment instructions
🧪 Test Coverage Details
DocusignCompositeEnvelopeBuilderTest (12 methods):
- ✅ Success with 3 templates
- ✅ Single template (minimum)
- ✅ 14 templates (maximum)
- ✅ Duplicate template handling
- ✅ Custom fields support
- ✅ Validation: no templates
- ✅ Validation: too many templates (>14)
- ✅ Validation: missing record ID
- ✅ API error 400 (bad request)
- ✅ API error 401 (unauthorized)
- ✅ JSON builder test
DocusignAPIServiceTest (14 methods):
- ✅ Successful envelope creation
- ✅ Parse envelope ID
- ✅ Parse envelope ID missing
- ✅ Handle errors: 400, 401, 403, 404, 429, 500
- ✅ Retry logic (transient failures)
- ✅ Build HTTP request
- ✅ Execute with retry (non-retryable error)
DocusignCredentialsTest (13 methods):
- ✅ Singleton pattern
- ✅ Load from Custom Settings
- ✅ Get access token, account ID, base URL
- ✅ Validate success
- ✅ Validate failures: missing account ID, base URL, token
- ✅ Set test credentials
- ✅ Reset instance
- ✅ Missing Custom Settings error
- ✅ Named Credential format
Total: 39 test methods across 6 classes
🎯 Project Status
| Phase | Status |
|---|---|
| Requirements & Design | ✅ Complete |
| Apex Code Development | ✅ Complete |
| Unit Tests | ✅ Complete (39 tests) |
| Documentation | ✅ Complete (56+ KB) |
| Deployment | ⏳ Ready to deploy |
| Flow Integration | ⏳ Awaiting deployment |
| Production Testing | ⏳ Next |
💡 Tips
Before Deploying:
- Review
docs/deployment-guide.mdsections 2-3 for Docusign setup - Have your Docusign Integration Key ready
- Know your Docusign Account ID
After Deploying:
- Run all tests to verify 100% pass rate
- Check debug logs for any issues
- Test with 1 template first, then multiple
Flow Modification:
- Keep your existing template selection UI
- Replace the loop that sends individual envelopes
- Add the Apex Action in place of the loop
SMS Delivery Setup (Flow V4):
- Use Flow V4 (
Docusign_Envelope_Templates_V4) when recipients may not have an email address - The
Docusign_Recipient_1__cfield on the Client Case must be populated with a Contact — a null lookup causes the recipient to be omitted from the envelope entirely - To trigger SMS delivery: link the Contact to the case but leave the Contact's Email field blank — the flow detects this and prompts the operator for a mobile number
- The placeholder email (
placeholder_email@docusign.com) substituted by Apex is defined as the constantSMS_PLACEHOLDER_EMAILinDocusignCompositeEnvelopeBuilder.cls— update the constant there if the address ever needs to change
❓ Need Help?
Check the troubleshooting section in docs/deployment-guide.md (section 10) for common issues and solutions.
Project Created: February 23, 2026
Developer: Paul Huliganga
Ready to Deploy: YES! 🚀