# Quick Start Guide ## โœ… Phase 2 Complete: Code Development All Apex classes and tests have been created! Here's what you have: ### ๐Ÿ“ฆ Code Files Created (6 classes) **Main Classes:** 1. `DocusignCompositeEnvelopeBuilder.cls` (11.5 KB) - Invocable method for Flow integration 2. `DocusignAPIService.cls` (10.5 KB) - REST API service layer 3. `DocusignCredentials.cls` (5.9 KB) - Credential management **Test Classes:** 4. `DocusignCompositeEnvelopeBuilderTest.cls` (13.8 KB) - 12 test methods 5. `DocusignAPIServiceTest.cls` (11.7 KB) - 14 test methods 6. `DocusignCredentialsTest.cls` (8.0 KB) - 13 test methods **Total:** 39 test methods for comprehensive coverage! **Metadata:** - Custom Setting: `Docusign_Configuration__c` with `Account_Id__c` and `Base_URL__c` fields - All `.cls-meta.xml` files (API version 61.0) --- ## ๐Ÿš€ Next Steps (Deployment) ### Step 1: Open Project in VS Code ```bash 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: 1. Open Extensions (Ctrl+Shift+X) 2. Search for "Salesforce Extension Pack" 3. Click Install ### Step 3: Authorize Your Salesforce Org **For Sandbox:** ```bash sf org login web --alias my-sandbox --instance-url https://test.salesforce.com ``` **For Production:** ```bash 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 ```bash sf config set target-org my-sandbox ``` ### Step 5: Deploy to Sandbox ```bash 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 ```bash 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: Configure Docusign Credentials 1. **Create Named Credential** (see docs/deployment-guide.md section 3.1) - Setup โ†’ Named Credentials โ†’ New Named Credential - Name: `DocusignAPI` - URL: `https://na3.docusign.net/restapi/v2.1` (or your data center) 2. **Configure Custom Settings** - Setup โ†’ Custom Settings โ†’ Docusign Configuration โ†’ Manage - Click "New" (organization-wide default) - Account Id: `{Your Docusign Account GUID}` - Base URL: `callout:DocusignAPI` - Save 3. **Add Remote Site Settings** - Setup โ†’ Remote Site Settings โ†’ New Remote Site - Name: `Docusign_API` - URL: `https://na3.docusign.net` - Active: โœ“ ### Step 8: Update Screen Flow See `docs/deployment-guide.md` section 5 for detailed Flow configuration steps. **Summary:** 1. Open your existing form selection Flow 2. Add Apex Action element (after template selection) 3. Select action: `Send Composite Docusign Envelope` 4. 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. 5. Store outputs: - `envelopeId` โ†’ `{!EnvelopeId}` - `success` โ†’ `{!Success}` - `errorMessage` โ†’ `{!ErrorMessage}` 6. Add Decision element for success/error handling 7. Save & Activate ### Step 9: Test Integration 1. Navigate to Salesforce record 2. Launch Screen Flow 3. Select language: English 4. Check 2-3 templates 5. Click Send 6. 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.md` sections 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__c` field 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 constant `SMS_PLACEHOLDER_EMAIL` in `DocusignCompositeEnvelopeBuilder.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! ๐Ÿš€