From 61e7e7823353412d06e56141e8cfe79ee82cb96b Mon Sep 17 00:00:00 2001 From: Jessie Rymph <155984652+salgsstyrke@users.noreply.github.com> Date: Thu, 24 Jul 2025 16:58:00 +0200 Subject: [PATCH 01/24] new version cumulus ci and sfdx versions --- .github/workflows/beta.yml | 3 ++- .github/workflows/feature.yml | 3 ++- .github/workflows/prod.yml | 3 ++- cumulusci.yml | 2 +- package-lock.json | 8 ++++---- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index d4aba19..ac81baf 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -10,4 +10,5 @@ jobs: secrets: dev-hub-auth-url: "${{ secrets.DEV_HUB_AUTH_URL }}" with: - cumulusci-version: '3.86.1' + cumulusci-version: '3.93.0' + sfdx-version: '7.209.6' diff --git a/.github/workflows/feature.yml b/.github/workflows/feature.yml index fb33093..b3edfc6 100644 --- a/.github/workflows/feature.yml +++ b/.github/workflows/feature.yml @@ -12,4 +12,5 @@ jobs: secrets: dev-hub-auth-url: "${{ secrets.DEV_HUB_AUTH_URL }}" with: - cumulusci-version: '3.86.1' + cumulusci-version: '3.93.0' + sfdx-version: '7.209.6' diff --git a/.github/workflows/prod.yml b/.github/workflows/prod.yml index f367ae5..1696028 100644 --- a/.github/workflows/prod.yml +++ b/.github/workflows/prod.yml @@ -5,6 +5,7 @@ jobs: name: "Upload Production Release (2GP)" uses: SFDO-Community/standard-workflows/.github/workflows/production-2gp.yml@main with: - cumulusci-version: '3.86.1' + cumulusci-version: '3.93.0' + sfdx-version: '7.209.6' secrets: dev-hub-auth-url: '${{ secrets.PACKAGING_ORG_AUTH_URL }}' diff --git a/cumulusci.yml b/cumulusci.yml index 11eb9c8..b4dee9c 100644 --- a/cumulusci.yml +++ b/cumulusci.yml @@ -1,4 +1,4 @@ -minimum_cumulusci_version: '3.86.1' +minimum_cumulusci_version: '3.93.0' project: name: Unsubscribe-Link package: diff --git a/package-lock.json b/package-lock.json index b2ba4ee..93dd391 100644 --- a/package-lock.json +++ b/package-lock.json @@ -908,8 +908,8 @@ "license": "MIT" }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "version": "3.93.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-3.93.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "license": "MIT", @@ -2973,7 +2973,7 @@ "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", + "@eslint-community/eslint-utils": "^3.93.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", "@typescript-eslint/scope-manager": "6.21.0", @@ -9299,7 +9299,7 @@ "dev": true, "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^3.93.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" From 9a52c7b67e03d38708c0f881c0bdfc3352f3d08c Mon Sep 17 00:00:00 2001 From: Jessie Rymph <155984652+salgsstyrke@users.noreply.github.com> Date: Thu, 24 Jul 2025 17:04:24 +0200 Subject: [PATCH 02/24] packagelock undo --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 93dd391..b2ba4ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -908,8 +908,8 @@ "license": "MIT" }, "node_modules/@eslint-community/eslint-utils": { - "version": "3.93.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-3.93.0.tgz", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "license": "MIT", @@ -2973,7 +2973,7 @@ "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^3.93.0", + "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", "@typescript-eslint/scope-manager": "6.21.0", @@ -9299,7 +9299,7 @@ "dev": true, "license": "MIT", "dependencies": { - "entities": "^3.93.0" + "entities": "^4.4.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" From b6efe81fdaa8c5de97bf956e6b7c8fea729596e9 Mon Sep 17 00:00:00 2001 From: Greg <46513157+Necroni@users.noreply.github.com> Date: Wed, 30 Jul 2025 14:49:35 -0400 Subject: [PATCH 03/24] Update object permissions to allow edit for Lead and Contact --- .../permissionsets/Unsubscribe_Link.permissionset-meta.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/force-app/main/default/permissionsets/Unsubscribe_Link.permissionset-meta.xml b/force-app/main/default/permissionsets/Unsubscribe_Link.permissionset-meta.xml index 5348194..f4e84cc 100644 --- a/force-app/main/default/permissionsets/Unsubscribe_Link.permissionset-meta.xml +++ b/force-app/main/default/permissionsets/Unsubscribe_Link.permissionset-meta.xml @@ -148,7 +148,7 @@ false false - false + true true false Contact @@ -157,7 +157,7 @@ false false - false + true true false Lead From 250cb10618fb3b446faef56289505a82b4a9d3ef Mon Sep 17 00:00:00 2001 From: Greg <46513157+Necroni@users.noreply.github.com> Date: Thu, 31 Jul 2025 10:42:16 -0400 Subject: [PATCH 04/24] Update Unsubscribe object description to remove Labs reference. --- .../objects/Unsubscribe__c/Unsubscribe__c.object-meta.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/force-app/main/default/objects/Unsubscribe__c/Unsubscribe__c.object-meta.xml b/force-app/main/default/objects/Unsubscribe__c/Unsubscribe__c.object-meta.xml index 4641999..215453e 100644 --- a/force-app/main/default/objects/Unsubscribe__c/Unsubscribe__c.object-meta.xml +++ b/force-app/main/default/objects/Unsubscribe__c/Unsubscribe__c.object-meta.xml @@ -143,7 +143,7 @@ false SYSTEM Deployed - Manage unsubscribes from email lists. Part of unmanaged package Unsubscribe Link from Salesforce Labs. Each record represents a time a user attempted to Unsubscribe from commercial email. + Manage unsubscribes from email lists. Each record represents a time a user attempted to Unsubscribe from commercial email. true true false From 095be88e2a4d37f5ff816716d7e1ed53c953c268 Mon Sep 17 00:00:00 2001 From: DKeatonDC <165526945+DKeatonDC@users.noreply.github.com> Date: Thu, 31 Jul 2025 13:22:16 -0400 Subject: [PATCH 05/24] Templates for Unsubscribe Link --- .../Sample_Contact_Template_HTML.email | 17 ++++++++++++++ ...ample_Contact_Template_HTML.email-meta.xml | 12 ++++++++++ .../Sample_Lead_Template_HTML.email | 17 ++++++++++++++ .../Sample_Lead_Template_HTML.email-meta.xml | 12 ++++++++++ .../Sample_Lead_Template_Plain_Text.email | 17 ++++++++++++++ ...le_Lead_Template_Plain_Text.email-meta.xml | 12 ++++++++++ ...subscribe_Url_Plain_Text__c.field-meta.xml | 12 ++++++++++ ...subscribe_Url_Plain_Text__c.field-meta.xml | 12 ++++++++++ .../Unsubscribe_Link.permissionset-meta.xml | 22 ++++++++++++++----- 9 files changed, 127 insertions(+), 6 deletions(-) create mode 100644 force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email create mode 100644 force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml create mode 100644 force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email create mode 100644 force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml create mode 100644 force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email create mode 100644 force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml create mode 100644 force-app/main/default/objects/Contact/fields/Unsubscribe_Url_Plain_Text__c.field-meta.xml create mode 100644 force-app/main/default/objects/Lead/fields/Unsubscribe_Url_Plain_Text__c.field-meta.xml diff --git a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email new file mode 100644 index 0000000..3956710 --- /dev/null +++ b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email @@ -0,0 +1,17 @@ + + +

Dear Friend,

+ +

It's Thursday! You love to order a pizza on Thursdays! If you order before 5, I'll also throw in some free drinks!

+ +

Your friend,

+ +

Bob

+ + + +
+
\ No newline at end of file diff --git a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml new file mode 100644 index 0000000..d66ee3a --- /dev/null +++ b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml @@ -0,0 +1,12 @@ + + + 64.0 + true + Sample template for contact that demonstrates how to use the unsubscribe link visualforce object. + UTF-8 + Sample Contact Template + + Edit this subject + visualforce + Aloha + diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email new file mode 100644 index 0000000..fe5b9ac --- /dev/null +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email @@ -0,0 +1,17 @@ + + +

Dear Friend,

+ +

It's Thursday! You love to order a pizza on Thursdays! If you order before 5, I'll also throw in some free drinks!

+ +

Your friend,

+ +

Bob

+ + + +
+
\ No newline at end of file diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml new file mode 100644 index 0000000..aed24c3 --- /dev/null +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml @@ -0,0 +1,12 @@ + + + 64.0 + true + Sample template for lead that demonstrates how to use the unsubscribe link visualforce object. + UTF-8 + Sample Lead Template + + Edit this subject + visualforce + Aloha + diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email new file mode 100644 index 0000000..edb2140 --- /dev/null +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email @@ -0,0 +1,17 @@ + + +Dear Friend, + +It's Thursday! You love to order a pizza on Thursdays! If you order before 5, I'll also throw in some free drinks! + +Your friend, + +Bob + +Copy and paste this in your browser to unsubscribe: +{!Recipient.Unsubscribe_Url_Plain_Text__c} + + \ No newline at end of file diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml new file mode 100644 index 0000000..baf382d --- /dev/null +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml @@ -0,0 +1,12 @@ + + + 64.0 + true + Sample template for lead that demonstrates how to use the unsubscribe link field in a plain text Visualforce email. + UTF-8 + Sample Lead Template-Plain Text + + Edit this subject + visualforce + Aloha + diff --git a/force-app/main/default/objects/Contact/fields/Unsubscribe_Url_Plain_Text__c.field-meta.xml b/force-app/main/default/objects/Contact/fields/Unsubscribe_Url_Plain_Text__c.field-meta.xml new file mode 100644 index 0000000..eed9499 --- /dev/null +++ b/force-app/main/default/objects/Contact/fields/Unsubscribe_Url_Plain_Text__c.field-meta.xml @@ -0,0 +1,12 @@ + + + Unsubscribe_Url_Plain_Text__c + Returns a plain text version of the url that can be used in emails. + false + LEFT(Part1_Unsubscribe_Link__c , FIND("+",Part1_Unsubscribe_Link__c ) - 1) + BlankAsZero + + false + Text + false + diff --git a/force-app/main/default/objects/Lead/fields/Unsubscribe_Url_Plain_Text__c.field-meta.xml b/force-app/main/default/objects/Lead/fields/Unsubscribe_Url_Plain_Text__c.field-meta.xml new file mode 100644 index 0000000..9506eca --- /dev/null +++ b/force-app/main/default/objects/Lead/fields/Unsubscribe_Url_Plain_Text__c.field-meta.xml @@ -0,0 +1,12 @@ + + + Unsubscribe_Url_Plain_Text__c + Holds the plain text value of the url. This is used to add the url to plain text emails. + false + LEFT(Part1_Unsubscribe_Link__c , FIND("+",Part1_Unsubscribe_Link__c ) - 1) + BlankAsZero + + false + Text + false + diff --git a/force-app/main/default/permissionsets/Unsubscribe_Link.permissionset-meta.xml b/force-app/main/default/permissionsets/Unsubscribe_Link.permissionset-meta.xml index 5348194..8d2196b 100644 --- a/force-app/main/default/permissionsets/Unsubscribe_Link.permissionset-meta.xml +++ b/force-app/main/default/permissionsets/Unsubscribe_Link.permissionset-meta.xml @@ -6,19 +6,24 @@ Contact.HasOptedOutOfEmail true + + true + Contact.Part1_Unsubscribe_Link__c + true + false Contact.Public_Id__c true - true - Contact.Part1_Unsubscribe_Link__c + false + Contact.Unsubscribe_Link_Contact__c true false - Contact.Unsubscribe_Link_Contact__c + Contact.Unsubscribe_Url_Plain_Text__c true @@ -26,19 +31,24 @@ Lead.HasOptedOutOfEmail true + + true + Lead.Part1_Unsubscribe_Link__c + true + false Lead.Public_Id__c true - true - Lead.Part1_Unsubscribe_Link__c + false + Lead.Unsubscribe_Link_Lead__c true false - Lead.Unsubscribe_Link_Lead__c + Lead.Unsubscribe_Url_Plain_Text__c true From edb8c7d6e2201e34a2f17ceb5b335f804f0f25e5 Mon Sep 17 00:00:00 2001 From: ivanrichiee <120200932+ivanrichiee@users.noreply.github.com> Date: Thu, 31 Jul 2025 18:54:11 +0100 Subject: [PATCH 06/24] Gracefully handle Org-Wide Email issues --- .../Unsubscribe_Link_Quick.flow-meta.xml | 174 +++++++++++++----- 1 file changed, 131 insertions(+), 43 deletions(-) diff --git a/force-app/main/default/flows/Unsubscribe_Link_Quick.flow-meta.xml b/force-app/main/default/flows/Unsubscribe_Link_Quick.flow-meta.xml index a5c160c..6f319b4 100644 --- a/force-app/main/default/flows/Unsubscribe_Link_Quick.flow-meta.xml +++ b/force-app/main/default/flows/Unsubscribe_Link_Quick.flow-meta.xml @@ -5,7 +5,7 @@ ConfirmationEmail 50 - 1430 + 1598 emailSimple emailSimple @@ -53,12 +53,60 @@ emailSimple + + Send error email to the email address held in the ErrorRecipient variable. In case this Error Email send fails, the end user is still returned the success screen. + Send_Error_Email + + 578 + 1598 + emailSimple + emailSimple + + screenConfirmationNoEmail + + + true + screenConfirmationNoEmail + + CurrentTransaction + + emailAddresses + + ErrorRecipient + + + + composeEmailContent + + True + + + + emailSubject + + Org-wide Email error + + + + emailBody + + errorEmailRichText + + + + sendRichBody + + true + + + emailSimple + 61.0 Was the original email with an unsubscribe link sent to a contact or a lead record? The Unsubscribe Link contains the public id., starting with C or L if it is a lead or contact. We need to find whether it is a contact or lead so that the Unsubscribe Record can be properly linked to the record. Contact_or_Lead - 842 + 1128 242 true @@ -96,11 +144,33 @@ + + Is_Org_Wide_Email_Address_Valid + + 314 + 1490 + + Send_Error_Email + + No, Invalid + + Is_OrgWideEmailAddressValid_true + and + + Get_Org_Wide_Email_Address.Id + NotEqualTo + + + ConfirmationEmail + + + + Quick_UnsubscribeDecision - 314 - 698 + 710 + 650 Are_you_sure @@ -125,8 +195,8 @@ The custom metadata type stores the yes/no answer to whether or not you want an email sent to confirm that the person unsubscribed. Send_Confirmation_Email - 314 - 1322 + 710 + 1274 screenConfirmationNoEmail @@ -142,7 +212,7 @@ - ConfirmationEmail + Get_Org_Wide_Email_Address @@ -152,8 +222,8 @@ If not, check if the custom metadata type allows the user to type in their email address. Was_a_Record_Found - 842 - 590 + 1128 + 542 No record found, no type in Yes_Record_Found1st @@ -233,16 +303,12 @@ If not, check if the custom metadata type allows the user to type in their email Create Unsubscribe record which stores details of this transaction. Create_Unsubscribe_Record - 314 - 998 + 710 + 950 UnsubscribeId.Id Unsubscribe_Contacts - - true - Error_Alert_Email - Contact__c @@ -273,16 +339,12 @@ If not, check if the custom metadata type allows the user to type in their email Look for a contact record with ID passed into the flow. Assign the email address to an email variable and the ID to a text variable called FoundId that is passed to other flows. Get_Contact - 314 + 864 350 true Was_a_Record_Found - - true - Error_Alert_Email - and Public_Id__c @@ -312,16 +374,12 @@ If not, check if the custom metadata type allows the user to type in their email Look for a lead record with ID passed into the flow. Assign the email address to an email variable and the ID to a text variable called FoundId that is passed to other flows. Get_Lead - 842 + 1128 350 true Was_a_Record_Found - - true - Error_Alert_Email - or Public_Id__c @@ -340,19 +398,44 @@ If not, check if the custom metadata type allows the user to type in their email Id + + Get Organization-Wide Email Address that is stored in the Unsubscribe Link Setup Record to check if it still exists and/or it has been verified + Get_Org_Wide_Email_Address + + 314 + 1382 + false + + Is_Org_Wide_Email_Address_Valid + + and + + Address + EqualTo + + Get_Unsubscribe_Link_Setup.Org_Wide_Email_Address__c + + + + IsVerified + EqualTo + + true + + + true + OrgWideEmailAddress + true + Get_Unsubscribe_Link_Setup - 842 + 1128 134 false Contact_or_Lead - - true - Error_Alert_Email - true Unsubscribe_Link_Setup__c true @@ -362,8 +445,8 @@ If not, check if the custom metadata type allows the user to type in their email confirmation screen for person to confirm they want to unsubscribe. Update "our organization" in the custom metadata type "Unsubscribe Link." Are_you_sure - 402 - 806 + 798 + 758 false true false @@ -383,7 +466,7 @@ If not, check if the custom metadata type allows the user to type in their email Error_Alert_Email 314 - 1538 + 1706 true true true @@ -399,7 +482,7 @@ If not, check if the custom metadata type allows the user to type in their email screenConfirmationEmail 50 - 1538 + 1706 true true true @@ -414,8 +497,8 @@ If not, check if the custom metadata type allows the user to type in their email screenConfirmationNoEmail - 578 - 1430 + 710 + 2114 true true true @@ -428,7 +511,7 @@ If not, check if the custom metadata type allows the user to type in their email false - 716 + 1002 0 Get_Unsubscribe_Link_Setup @@ -438,8 +521,8 @@ If not, check if the custom metadata type allows the user to type in their email Blank_Values_Flow - 1106 - 698 + 1282 + 650 true Quick_UnsubscribeDecision @@ -470,8 +553,8 @@ If not, check if the custom metadata type allows the user to type in their email Launch this additional flow to find all contacts who have this email address and mark them as email opt out. Unsubscribe_Contacts - 314 - 1106 + 710 + 1058 Unsubscribe_Leads @@ -503,8 +586,8 @@ If not, check if the custom metadata type allows the user to type in their email Part of the unmanaged packed Unsubscribe Link from Salesforce Labs and loops through all leads with a particular email address to mark them as email opt out. This flow is launched by the flow Unsubscribe Link. Unsubscribe_Leads - 314 - 1214 + 710 + 1166 Send_Confirmation_Email @@ -543,6 +626,11 @@ If not, check if the custom metadata type allows the user to type in their email false <p><span style="color: rgb(62, 62, 60); background-color: rgb(255, 255, 255);">Alert: there was an error in running the Flow Unsubscribe Link Quick. This is part of the Unsubscribe Link managed package from appExchange. </span></p><p><br></p><p><span style="color: rgb(62, 62, 60); background-color: rgb(255, 255, 255);">The error is most likely that the flow could not find the required Unsubscribe Link Setup record.</span></p><p><br></p><p><span style="color: rgb(62, 62, 60); background-color: rgb(255, 255, 255);">Here are the variables that were input from the link in the email. </span></p><ul><li><span style="color: rgb(62, 62, 60); background-color: rgb(255, 255, 255);">publicId (the id passed in the URL)= {!varPublicID}</span></li></ul><p><br></p><p>To modify who receives this email, run the Unsubscribe Link Setup Flow.</p> + + errorEmailRichText + false + <p>There's an error in the <strong>Unsubscribe Link Quick </strong>flow.</p><p><br></p><p>Please check whether the Organization-Wide Email Address: <strong>{!Get_Unsubscribe_Link_Setup.Org_Wide_Email_Address__c}</strong>,<strong> </strong>specified on the Unsubscribe Link Setup record exist in Setup and it's Status is <strong>Verified</strong>.</p><p><br></p><p><span style="background-color: rgb(255, 255, 255);">The Flow is part of an unmanaged package called Unsubscribe Link from the App Exchange.</span></p> + contactCollection SObject From c146fe064d43ab5ee86dfd4fc244b9f87ab03851 Mon Sep 17 00:00:00 2001 From: DKeatonDC <165526945+DKeatonDC@users.noreply.github.com> Date: Fri, 1 Aug 2025 11:27:27 -0400 Subject: [PATCH 07/24] Partially addresses issue discovered error emails. --- .../Unsubscribe_Link_Quick.flowDefinition-meta.xml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 force-app/main/default/flowDefinitions/Unsubscribe_Link_Quick.flowDefinition-meta.xml diff --git a/force-app/main/default/flowDefinitions/Unsubscribe_Link_Quick.flowDefinition-meta.xml b/force-app/main/default/flowDefinitions/Unsubscribe_Link_Quick.flowDefinition-meta.xml new file mode 100644 index 0000000..62c41b3 --- /dev/null +++ b/force-app/main/default/flowDefinitions/Unsubscribe_Link_Quick.flowDefinition-meta.xml @@ -0,0 +1,4 @@ + + + 3 + From 177eda03229c13ed754048e998cf1f87f581a181 Mon Sep 17 00:00:00 2001 From: DKeatonDC <165526945+DKeatonDC@users.noreply.github.com> Date: Fri, 1 Aug 2025 11:30:12 -0400 Subject: [PATCH 08/24] assigns value to text variable --- .../Unsubscribe_Link_Quick.flow-meta.xml | 57 ++++++++++++------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/force-app/main/default/flows/Unsubscribe_Link_Quick.flow-meta.xml b/force-app/main/default/flows/Unsubscribe_Link_Quick.flow-meta.xml index 6f319b4..2ff0be1 100644 --- a/force-app/main/default/flows/Unsubscribe_Link_Quick.flow-meta.xml +++ b/force-app/main/default/flows/Unsubscribe_Link_Quick.flow-meta.xml @@ -5,7 +5,7 @@ ConfirmationEmail 50 - 1598 + 1706 emailSimple emailSimple @@ -58,7 +58,7 @@ Send_Error_Email 578 - 1598 + 1706 emailSimple emailSimple @@ -102,12 +102,29 @@ emailSimple 61.0 + + Passes the error email recipient email from the unsubscribe link setup to a text variable used by subflows. + Set_ErrorRecipient + + 1128 + 242 + + ErrorRecipient + Assign + + Get_Unsubscribe_Link_Setup.Error_Email_Recipient__c + + + + Contact_or_Lead + + Was the original email with an unsubscribe link sent to a contact or a lead record? The Unsubscribe Link contains the public id., starting with C or L if it is a lead or contact. We need to find whether it is a contact or lead so that the Unsubscribe Record can be properly linked to the record. Contact_or_Lead 1128 - 242 + 350 true Blank_Values_Flow @@ -148,7 +165,7 @@ Is_Org_Wide_Email_Address_Valid 314 - 1490 + 1598 Send_Error_Email @@ -170,7 +187,7 @@ Quick_UnsubscribeDecision 710 - 650 + 758 Are_you_sure @@ -196,7 +213,7 @@ Send_Confirmation_Email 710 - 1274 + 1382 screenConfirmationNoEmail @@ -223,7 +240,7 @@ If not, check if the custom metadata type allows the user to type in their email Was_a_Record_Found 1128 - 542 + 650 No record found, no type in Yes_Record_Found1st @@ -256,7 +273,7 @@ If not, check if the custom metadata type allows the user to type in their email - Customer facing flow of the Unsubscribe Link managed package from AppExchange. + Customer facing flow of the Unsubscribe Link managed package from AppExchange. Updated to set the value of the error email recipient flow. Previously, the value was blank. Default get the total number of records that had this email address and unsubscribed. @@ -304,7 +321,7 @@ If not, check if the custom metadata type allows the user to type in their email Create_Unsubscribe_Record 710 - 950 + 1058 UnsubscribeId.Id Unsubscribe_Contacts @@ -340,7 +357,7 @@ If not, check if the custom metadata type allows the user to type in their email Get_Contact 864 - 350 + 458 true Was_a_Record_Found @@ -375,7 +392,7 @@ If not, check if the custom metadata type allows the user to type in their email Get_Lead 1128 - 350 + 458 true Was_a_Record_Found @@ -403,7 +420,7 @@ If not, check if the custom metadata type allows the user to type in their email Get_Org_Wide_Email_Address 314 - 1382 + 1490 false Is_Org_Wide_Email_Address_Valid @@ -434,7 +451,7 @@ If not, check if the custom metadata type allows the user to type in their email 134 false - Contact_or_Lead + Set_ErrorRecipient true Unsubscribe_Link_Setup__c @@ -446,7 +463,7 @@ If not, check if the custom metadata type allows the user to type in their email Are_you_sure 798 - 758 + 866 false true false @@ -466,7 +483,7 @@ If not, check if the custom metadata type allows the user to type in their email Error_Alert_Email 314 - 1706 + 1814 true true true @@ -482,7 +499,7 @@ If not, check if the custom metadata type allows the user to type in their email screenConfirmationEmail 50 - 1706 + 1814 true true true @@ -498,7 +515,7 @@ If not, check if the custom metadata type allows the user to type in their email screenConfirmationNoEmail 710 - 2114 + 2222 true true true @@ -522,7 +539,7 @@ If not, check if the custom metadata type allows the user to type in their email Blank_Values_Flow 1282 - 650 + 758 true Quick_UnsubscribeDecision @@ -554,7 +571,7 @@ If not, check if the custom metadata type allows the user to type in their email Unsubscribe_Contacts 710 - 1058 + 1166 Unsubscribe_Leads @@ -587,7 +604,7 @@ If not, check if the custom metadata type allows the user to type in their email Unsubscribe_Leads 710 - 1166 + 1274 Send_Confirmation_Email From abc5880511a14e133e6acc48ba2fadaaeeafc6c7 Mon Sep 17 00:00:00 2001 From: Jessie Rymph <155984652+salgsstyrke@users.noreply.github.com> Date: Wed, 27 Aug 2025 14:37:45 +0200 Subject: [PATCH 09/24] Delete force-app/main/default/flowDefinitions/Unsubscribe_Link_Quick.flowDefinition-meta.xml flow definition does not need to be included. Signed-off-by: Jessie Rymph <155984652+salgsstyrke@users.noreply.github.com> --- .../Unsubscribe_Link_Quick.flowDefinition-meta.xml | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 force-app/main/default/flowDefinitions/Unsubscribe_Link_Quick.flowDefinition-meta.xml diff --git a/force-app/main/default/flowDefinitions/Unsubscribe_Link_Quick.flowDefinition-meta.xml b/force-app/main/default/flowDefinitions/Unsubscribe_Link_Quick.flowDefinition-meta.xml deleted file mode 100644 index 62c41b3..0000000 --- a/force-app/main/default/flowDefinitions/Unsubscribe_Link_Quick.flowDefinition-meta.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 3 - From a51e4ba587a59afd41c6ae81b0cc29443a98d889 Mon Sep 17 00:00:00 2001 From: Jessie Rymph <155984652+salgsstyrke@users.noreply.github.com> Date: Wed, 27 Aug 2025 19:49:21 +0200 Subject: [PATCH 10/24] feature/versionNumber update version numbers in sfdx-project.json --- sfdx-project.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sfdx-project.json b/sfdx-project.json index 3896fe3..478c634 100644 --- a/sfdx-project.json +++ b/sfdx-project.json @@ -4,13 +4,13 @@ "path": "force-app", "package": "Unsubscribe Link", "versionName": "ver 0.1.NEXT", - "versionNumber": "0.1.0.NEXT", + "versionNumber": "0.1.1.NEXT", "default": true, "versionDescription": "" }, { "versionName": "ver 0.1", - "versionNumber": "0.1.0.NEXT", + "versionNumber": "0.1.1.NEXT", "definitionFile": "config/scratch-org-def.json", "path": "unsubscribe", "default": false, From 23e8fbaae2445f8a5232770602dc51edf5b34312 Mon Sep 17 00:00:00 2001 From: Jessie Rymph <155984652+salgsstyrke@users.noreply.github.com> Date: Thu, 28 Aug 2025 10:23:17 +0200 Subject: [PATCH 11/24] Update Sample_Contact_Template_HTML.email-meta.xml Change the name of the email template. Signed-off-by: Jessie Rymph <155984652+salgsstyrke@users.noreply.github.com> --- .../unfiled$public/Sample_Contact_Template_HTML.email-meta.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml index d66ee3a..ce7a4a0 100644 --- a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml +++ b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml @@ -4,7 +4,7 @@ true Sample template for contact that demonstrates how to use the unsubscribe link visualforce object. UTF-8 - Sample Contact Template + Unsubscribe Sample Contact Template Edit this subject visualforce From a2505441382da074bdfaff5700f5b56b346a8927 Mon Sep 17 00:00:00 2001 From: salgsstyrke Date: Thu, 28 Aug 2025 10:39:08 +0200 Subject: [PATCH 12/24] feature/emailtemplatenames --- .../unfiled$public/Sample_Contact_Template_HTML.email-meta.xml | 2 +- .../unfiled$public/Sample_Lead_Template_HTML.email-meta.xml | 2 +- .../Sample_Lead_Template_Plain_Text.email-meta.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml index ce7a4a0..e1707b0 100644 --- a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml +++ b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml @@ -4,7 +4,7 @@ true Sample template for contact that demonstrates how to use the unsubscribe link visualforce object. UTF-8 - Unsubscribe Sample Contact Template + Unsubscribe Sample Contact Template Edit this subject visualforce diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml index aed24c3..e063018 100644 --- a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml @@ -4,7 +4,7 @@ true Sample template for lead that demonstrates how to use the unsubscribe link visualforce object. UTF-8 - Sample Lead Template + Unsubscribe Sample Lead Template Edit this subject visualforce diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml index baf382d..1a92eb7 100644 --- a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml @@ -4,7 +4,7 @@ true Sample template for lead that demonstrates how to use the unsubscribe link field in a plain text Visualforce email. UTF-8 - Sample Lead Template-Plain Text + Unsubscribe Sample Lead Template-Plain Text Edit this subject visualforce From 9b03f6fb5da409f418c7e20664e874d38e315ada Mon Sep 17 00:00:00 2001 From: salgsstyrke Date: Fri, 29 Aug 2025 12:48:17 +0200 Subject: [PATCH 13/24] feature/emailFolder Move 3 vf template emails to their own folder because of a conflict in unfiled public. --- .../Sample_Contact_Template_HTML.email | 0 .../Sample_Contact_Template_HTML.email-meta.xml | 0 .../Sample_Lead_Template_HTML.email | 0 .../Sample_Lead_Template_HTML.email-meta.xml | 0 .../Sample_Lead_Template_Plain_Text.email | 0 .../Sample_Lead_Template_Plain_Text.email-meta.xml | 0 .../Unsubscribe_Link/Unsubscribe_Link.emailFolder-meta.xml | 6 ++++++ 7 files changed, 6 insertions(+) rename force-app/main/default/email/{unfiled$public => Unsubscribe_Link}/Sample_Contact_Template_HTML.email (100%) rename force-app/main/default/email/{unfiled$public => Unsubscribe_Link}/Sample_Contact_Template_HTML.email-meta.xml (100%) rename force-app/main/default/email/{unfiled$public => Unsubscribe_Link}/Sample_Lead_Template_HTML.email (100%) rename force-app/main/default/email/{unfiled$public => Unsubscribe_Link}/Sample_Lead_Template_HTML.email-meta.xml (100%) rename force-app/main/default/email/{unfiled$public => Unsubscribe_Link}/Sample_Lead_Template_Plain_Text.email (100%) rename force-app/main/default/email/{unfiled$public => Unsubscribe_Link}/Sample_Lead_Template_Plain_Text.email-meta.xml (100%) create mode 100644 force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Link.emailFolder-meta.xml diff --git a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email b/force-app/main/default/email/Unsubscribe_Link/Sample_Contact_Template_HTML.email similarity index 100% rename from force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email rename to force-app/main/default/email/Unsubscribe_Link/Sample_Contact_Template_HTML.email diff --git a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml b/force-app/main/default/email/Unsubscribe_Link/Sample_Contact_Template_HTML.email-meta.xml similarity index 100% rename from force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml rename to force-app/main/default/email/Unsubscribe_Link/Sample_Contact_Template_HTML.email-meta.xml diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email b/force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_HTML.email similarity index 100% rename from force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email rename to force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_HTML.email diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml b/force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_HTML.email-meta.xml similarity index 100% rename from force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml rename to force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_HTML.email-meta.xml diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email b/force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_Plain_Text.email similarity index 100% rename from force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email rename to force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_Plain_Text.email diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml b/force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_Plain_Text.email-meta.xml similarity index 100% rename from force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml rename to force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_Plain_Text.email-meta.xml diff --git a/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Link.emailFolder-meta.xml b/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Link.emailFolder-meta.xml new file mode 100644 index 0000000..33b4625 --- /dev/null +++ b/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Link.emailFolder-meta.xml @@ -0,0 +1,6 @@ + + + Public + Unsubscribe Link + ReadOnly + From fbf7d551815259f22b81dbc0b7ff9be6c2b2a8d0 Mon Sep 17 00:00:00 2001 From: salgsstyrke Date: Fri, 29 Aug 2025 13:02:59 +0200 Subject: [PATCH 14/24] feature/Email Folder xml --- .../default/email/Unsubscribe_Link.emailFolder-meta.xml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 force-app/main/default/email/Unsubscribe_Link.emailFolder-meta.xml diff --git a/force-app/main/default/email/Unsubscribe_Link.emailFolder-meta.xml b/force-app/main/default/email/Unsubscribe_Link.emailFolder-meta.xml new file mode 100644 index 0000000..33b4625 --- /dev/null +++ b/force-app/main/default/email/Unsubscribe_Link.emailFolder-meta.xml @@ -0,0 +1,6 @@ + + + Public + Unsubscribe Link + ReadOnly + From 45bb14e27a4dad7a44ec5c0b39ca37b44334f750 Mon Sep 17 00:00:00 2001 From: salgsstyrke Date: Fri, 29 Aug 2025 13:27:24 +0200 Subject: [PATCH 15/24] feature/ReNameEmailsandFolder --- .../default/email/Unsubscribe_Link.emailFolder-meta.xml | 2 +- ...e_HTML.email => Unsubscribe_Contact_Template_HTML.email} | 0 ...xml => Unsubscribe_Contact_Template_HTML.email-meta.xml} | 2 +- ...late_HTML.email => Unsubscribe_Lead_Template_HTML.email} | 0 ...ta.xml => Unsubscribe_Lead_Template_HTML.email-meta.xml} | 0 ...ext.email => Unsubscribe_Lead_Template_Plain_Text.email} | 0 ... => Unsubscribe_Lead_Template_Plain_Text.email-meta.xml} | 0 .../Unsubscribe_Link/Unsubscribe_Link.emailFolder-meta.xml | 6 ------ 8 files changed, 2 insertions(+), 8 deletions(-) rename force-app/main/default/email/Unsubscribe_Link/{Sample_Contact_Template_HTML.email => Unsubscribe_Contact_Template_HTML.email} (100%) rename force-app/main/default/email/Unsubscribe_Link/{Sample_Contact_Template_HTML.email-meta.xml => Unsubscribe_Contact_Template_HTML.email-meta.xml} (89%) rename force-app/main/default/email/Unsubscribe_Link/{Sample_Lead_Template_HTML.email => Unsubscribe_Lead_Template_HTML.email} (100%) rename force-app/main/default/email/Unsubscribe_Link/{Sample_Lead_Template_HTML.email-meta.xml => Unsubscribe_Lead_Template_HTML.email-meta.xml} (100%) rename force-app/main/default/email/Unsubscribe_Link/{Sample_Lead_Template_Plain_Text.email => Unsubscribe_Lead_Template_Plain_Text.email} (100%) rename force-app/main/default/email/Unsubscribe_Link/{Sample_Lead_Template_Plain_Text.email-meta.xml => Unsubscribe_Lead_Template_Plain_Text.email-meta.xml} (100%) delete mode 100644 force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Link.emailFolder-meta.xml diff --git a/force-app/main/default/email/Unsubscribe_Link.emailFolder-meta.xml b/force-app/main/default/email/Unsubscribe_Link.emailFolder-meta.xml index 33b4625..307b43b 100644 --- a/force-app/main/default/email/Unsubscribe_Link.emailFolder-meta.xml +++ b/force-app/main/default/email/Unsubscribe_Link.emailFolder-meta.xml @@ -1,6 +1,6 @@ Public - Unsubscribe Link + UnsubscribeLink ReadOnly diff --git a/force-app/main/default/email/Unsubscribe_Link/Sample_Contact_Template_HTML.email b/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Contact_Template_HTML.email similarity index 100% rename from force-app/main/default/email/Unsubscribe_Link/Sample_Contact_Template_HTML.email rename to force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Contact_Template_HTML.email diff --git a/force-app/main/default/email/Unsubscribe_Link/Sample_Contact_Template_HTML.email-meta.xml b/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Contact_Template_HTML.email-meta.xml similarity index 89% rename from force-app/main/default/email/Unsubscribe_Link/Sample_Contact_Template_HTML.email-meta.xml rename to force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Contact_Template_HTML.email-meta.xml index e1707b0..ce7a4a0 100644 --- a/force-app/main/default/email/Unsubscribe_Link/Sample_Contact_Template_HTML.email-meta.xml +++ b/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Contact_Template_HTML.email-meta.xml @@ -4,7 +4,7 @@ true Sample template for contact that demonstrates how to use the unsubscribe link visualforce object. UTF-8 - Unsubscribe Sample Contact Template + Unsubscribe Sample Contact Template Edit this subject visualforce diff --git a/force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_HTML.email b/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Lead_Template_HTML.email similarity index 100% rename from force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_HTML.email rename to force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Lead_Template_HTML.email diff --git a/force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_HTML.email-meta.xml b/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Lead_Template_HTML.email-meta.xml similarity index 100% rename from force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_HTML.email-meta.xml rename to force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Lead_Template_HTML.email-meta.xml diff --git a/force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_Plain_Text.email b/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Lead_Template_Plain_Text.email similarity index 100% rename from force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_Plain_Text.email rename to force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Lead_Template_Plain_Text.email diff --git a/force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_Plain_Text.email-meta.xml b/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Lead_Template_Plain_Text.email-meta.xml similarity index 100% rename from force-app/main/default/email/Unsubscribe_Link/Sample_Lead_Template_Plain_Text.email-meta.xml rename to force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Lead_Template_Plain_Text.email-meta.xml diff --git a/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Link.emailFolder-meta.xml b/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Link.emailFolder-meta.xml deleted file mode 100644 index 33b4625..0000000 --- a/force-app/main/default/email/Unsubscribe_Link/Unsubscribe_Link.emailFolder-meta.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - Public - Unsubscribe Link - ReadOnly - From 6ca94d4b31c586d00806ca5321df34d6e1ff976a Mon Sep 17 00:00:00 2001 From: salgsstyrke Date: Mon, 1 Sep 2025 13:50:56 +0200 Subject: [PATCH 16/24] feature/undoEmailRelatedChanges All of my changes related to the emails were breaking it so now attempting to undo those changes. --- .../email/unfiled$public/Sample_Contact_Template_HTML.email | 2 +- .../unfiled$public/Sample_Contact_Template_HTML.email-meta.xml | 2 +- .../unfiled$public/Sample_Lead_Template_HTML.email-meta.xml | 2 +- .../email/unfiled$public/Sample_Lead_Template_Plain_Text.email | 2 +- .../Sample_Lead_Template_Plain_Text.email-meta.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email index 3956710..f86d2ca 100644 --- a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email +++ b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email @@ -1,5 +1,5 @@ -

Dear Friend,

diff --git a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml index e1707b0..b610f52 100644 --- a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml +++ b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml @@ -2,7 +2,7 @@ 64.0 true - Sample template for contact that demonstrates how to use the unsubscribe link visualforce object. + Sample template for contact that demonstrates how to use the unsubscribe link visualforce object. UTF-8 Unsubscribe Sample Contact Template diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml index e063018..3f23bc9 100644 --- a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml @@ -2,7 +2,7 @@ 64.0 true - Sample template for lead that demonstrates how to use the unsubscribe link visualforce object. + Sample template for lead that demonstrates how to use the unsubscribe link visualforce object. UTF-8 Unsubscribe Sample Lead Template diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email index edb2140..4b47148 100644 --- a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email @@ -1,5 +1,5 @@ - Dear Friend, diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml index 1a92eb7..9b44272 100644 --- a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml @@ -2,7 +2,7 @@ 64.0 true - Sample template for lead that demonstrates how to use the unsubscribe link field in a plain text Visualforce email. + Sample template for lead that demonstrates how to use the unsubscribe link field in a plain text Visualforce email UTF-8 Unsubscribe Sample Lead Template-Plain Text From 5b1d08ad65301ae3d9b67886fa7bb43ae9fa3bb1 Mon Sep 17 00:00:00 2001 From: Aaron Crosman Date: Fri, 14 Nov 2025 09:57:52 -0700 Subject: [PATCH 17/24] Move try statement to before single email message creation. --- force-app/main/default/classes/UUIDBatchJob.cls | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/force-app/main/default/classes/UUIDBatchJob.cls b/force-app/main/default/classes/UUIDBatchJob.cls index f208d4e..ee56f15 100644 --- a/force-app/main/default/classes/UUIDBatchJob.cls +++ b/force-app/main/default/classes/UUIDBatchJob.cls @@ -109,12 +109,12 @@ public with sharing class UUIDBatchJob implements Database.Batchable { } ); - Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); - mail.setToAddresses(new List{ job.CreatedBy.Email }); - mail.setSubject('UUID Batch Job Complete'); - mail.setPlainTextBody(emailBody); - try { + Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); + mail.setToAddresses(new List{ job.CreatedBy.Email }); + mail.setSubject('UUID Batch Job Complete'); + mail.setPlainTextBody(emailBody); + Messaging.sendEmail(new List{ mail }); } catch (Exception e) { System.debug( From c46568a56106dbb548c7fb494ce1a2298c313814 Mon Sep 17 00:00:00 2001 From: Aaron Crosman Date: Fri, 14 Nov 2025 15:31:28 -0700 Subject: [PATCH 18/24] Remove CCI and SFDX version hardcoding. --- .github/workflows/feature.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/feature.yml b/.github/workflows/feature.yml index b3edfc6..ffda1b7 100644 --- a/.github/workflows/feature.yml +++ b/.github/workflows/feature.yml @@ -11,6 +11,6 @@ jobs: uses: "SFDO-Community/standard-workflows/.github/workflows/feature.yml@main" secrets: dev-hub-auth-url: "${{ secrets.DEV_HUB_AUTH_URL }}" - with: - cumulusci-version: '3.93.0' - sfdx-version: '7.209.6' + # with: + # cumulusci-version: '3.93.0' + # sfdx-version: '7.209.6' From 8ea88ff27c862a059b3c02a78bb7c68bd1e5b864 Mon Sep 17 00:00:00 2001 From: Aaron Crosman Date: Fri, 14 Nov 2025 15:35:16 -0700 Subject: [PATCH 19/24] Updates to Beta and Prod workflows to review version numbers --- .github/workflows/beta.yml | 6 +++--- .github/workflows/prod.yml | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index ac81baf..5122806 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -9,6 +9,6 @@ jobs: uses: "SFDO-Community/standard-workflows/.github/workflows/beta-2gp.yml@main" secrets: dev-hub-auth-url: "${{ secrets.DEV_HUB_AUTH_URL }}" - with: - cumulusci-version: '3.93.0' - sfdx-version: '7.209.6' + # with: + # cumulusci-version: '3.93.0' + # sfdx-version: '7.209.6' diff --git a/.github/workflows/prod.yml b/.github/workflows/prod.yml index 1696028..e704693 100644 --- a/.github/workflows/prod.yml +++ b/.github/workflows/prod.yml @@ -1,11 +1,11 @@ on: - workflow_dispatch: + workflow_dispatch: jobs: upload-production-release-2gp: name: "Upload Production Release (2GP)" uses: SFDO-Community/standard-workflows/.github/workflows/production-2gp.yml@main - with: - cumulusci-version: '3.93.0' - sfdx-version: '7.209.6' + # with: + # cumulusci-version: '3.93.0' + # sfdx-version: '7.209.6' secrets: dev-hub-auth-url: '${{ secrets.PACKAGING_ORG_AUTH_URL }}' From f9c2758b43a5af39f16ec5cccbfde848359afa66 Mon Sep 17 00:00:00 2001 From: James Estevez Date: Tue, 2 Dec 2025 17:25:59 -0800 Subject: [PATCH 20/24] Enable CI workflow on all pull requests (#182) Updates feature test workflow to trigger on pull requests instead of only feature/** branch pushes. This enables CI to run on PRs from any branch and from forks after maintainer approval. --- .github/workflows/feature.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/feature.yml b/.github/workflows/feature.yml index ffda1b7..ec51375 100644 --- a/.github/workflows/feature.yml +++ b/.github/workflows/feature.yml @@ -1,8 +1,6 @@ name: "Feature Test" on: - push: - branches: - - feature/** + pull_request: jobs: From a8836adde248133cc945c19892832e482d47a42c Mon Sep 17 00:00:00 2001 From: Cori O'Brien <37851761+coriobriensfdo@users.noreply.github.com> Date: Thu, 4 Dec 2025 10:12:11 -0800 Subject: [PATCH 21/24] Update CODEOWNERS (#181) Description to use: Adding ECCN information per Salesforce OSPO request Signed-off-by: Cori O'Brien <37851761+coriobriensfdo@users.noreply.github.com> Co-authored-by: James Estevez --- CODEOWNERS | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/CODEOWNERS b/CODEOWNERS index ce7a494..f1550f4 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,2 +1,14 @@ -# Comment line immediately above ownership line is reserved for related other information. Please be careful while editing. +# Python +*.py @SFDO-Community/sfdo-release-engineers + +# CumulusCI +/cumulusci.yml @SFDO-Community/sfdo-release-engineers +/tasks/ @SFDO-Community/sfdo-release-engineers + +# Actions +/.github @SFDO-Community/sfdo-release-engineers +/scripts @SFDO-Community/sfdo-release-engineers + + #ECCN:Open Source +#GUSINFO:Open Source,Open Source Workflow From edbbed1602164953a7f38a605b32ace2ab6e1900 Mon Sep 17 00:00:00 2001 From: James Estevez Date: Thu, 4 Dec 2025 20:25:14 -0800 Subject: [PATCH 22/24] chore: enable manual workflow dispatch for security testing (#183) --- .github/workflows/feature.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/feature.yml b/.github/workflows/feature.yml index ec51375..3be451d 100644 --- a/.github/workflows/feature.yml +++ b/.github/workflows/feature.yml @@ -1,6 +1,7 @@ name: "Feature Test" on: pull_request: + workflow_dispatch: jobs: From d2115c5d766dd98b41b44b2d9a855cdcbad55c11 Mon Sep 17 00:00:00 2001 From: James Estevez Date: Tue, 3 Feb 2026 14:41:40 -0800 Subject: [PATCH 23/24] fix: correct YAML indentation in feature workflow (#191) ## Summary - Fix YAML indentation in feature workflow that caused SFDX auth URL parsing errors ## Details Corrected indentation for the `feature-test` job and `secrets` section. The malformed YAML was causing the dev-hub-auth-url secret to be incorrectly parsed, resulting in "Invalid SFDX authorization URL" errors during workflow execution. ## Test Plan - [ ] Verify workflow runs successfully with proper SFDX auth URL format --- .github/workflows/feature.yml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/feature.yml b/.github/workflows/feature.yml index 3be451d..5bf1d9c 100644 --- a/.github/workflows/feature.yml +++ b/.github/workflows/feature.yml @@ -3,13 +3,9 @@ on: pull_request: workflow_dispatch: - jobs: - feature-test: - name: "Feature Test" - uses: "SFDO-Community/standard-workflows/.github/workflows/feature.yml@main" - secrets: - dev-hub-auth-url: "${{ secrets.DEV_HUB_AUTH_URL }}" - # with: - # cumulusci-version: '3.93.0' - # sfdx-version: '7.209.6' + feature-test: + name: "Feature Test" + uses: "SFDO-Community/standard-workflows/.github/workflows/feature.yml@main" + secrets: + dev-hub-auth-url: "${{ secrets.DEV_HUB_AUTH_URL }}" \ No newline at end of file From 75d776c50b278e881c59c7aabdde9e6021c7158d Mon Sep 17 00:00:00 2001 From: Aaron Crosman Date: Thu, 8 Jan 2026 18:46:39 -0500 Subject: [PATCH 24/24] Restore sample email templates to public folder. --- .../Sample_Contact_Template_HTML.email | 17 +++++++++++++++++ .../Sample_Contact_Template_HTML.email-meta.xml | 12 ++++++++++++ .../Sample_Lead_Template_HTML.email | 17 +++++++++++++++++ .../Sample_Lead_Template_HTML.email-meta.xml | 12 ++++++++++++ .../Sample_Lead_Template_Plain_Text.email | 17 +++++++++++++++++ ...mple_Lead_Template_Plain_Text.email-meta.xml | 12 ++++++++++++ 6 files changed, 87 insertions(+) create mode 100644 force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email create mode 100644 force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml create mode 100644 force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email create mode 100644 force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml create mode 100644 force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email create mode 100644 force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml diff --git a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email new file mode 100644 index 0000000..3956710 --- /dev/null +++ b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email @@ -0,0 +1,17 @@ + + +

Dear Friend,

+ +

It's Thursday! You love to order a pizza on Thursdays! If you order before 5, I'll also throw in some free drinks!

+ +

Your friend,

+ +

Bob

+ + + +
+
\ No newline at end of file diff --git a/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml new file mode 100644 index 0000000..d66ee3a --- /dev/null +++ b/force-app/main/default/email/unfiled$public/Sample_Contact_Template_HTML.email-meta.xml @@ -0,0 +1,12 @@ + + + 64.0 + true + Sample template for contact that demonstrates how to use the unsubscribe link visualforce object. + UTF-8 + Sample Contact Template + + Edit this subject + visualforce + Aloha + diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email new file mode 100644 index 0000000..fe5b9ac --- /dev/null +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email @@ -0,0 +1,17 @@ + + +

Dear Friend,

+ +

It's Thursday! You love to order a pizza on Thursdays! If you order before 5, I'll also throw in some free drinks!

+ +

Your friend,

+ +

Bob

+ + + +
+
\ No newline at end of file diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml new file mode 100644 index 0000000..aed24c3 --- /dev/null +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_HTML.email-meta.xml @@ -0,0 +1,12 @@ + + + 64.0 + true + Sample template for lead that demonstrates how to use the unsubscribe link visualforce object. + UTF-8 + Sample Lead Template + + Edit this subject + visualforce + Aloha + diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email new file mode 100644 index 0000000..edb2140 --- /dev/null +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email @@ -0,0 +1,17 @@ + + +Dear Friend, + +It's Thursday! You love to order a pizza on Thursdays! If you order before 5, I'll also throw in some free drinks! + +Your friend, + +Bob + +Copy and paste this in your browser to unsubscribe: +{!Recipient.Unsubscribe_Url_Plain_Text__c} + + \ No newline at end of file diff --git a/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml new file mode 100644 index 0000000..baf382d --- /dev/null +++ b/force-app/main/default/email/unfiled$public/Sample_Lead_Template_Plain_Text.email-meta.xml @@ -0,0 +1,12 @@ + + + 64.0 + true + Sample template for lead that demonstrates how to use the unsubscribe link field in a plain text Visualforce email. + UTF-8 + Sample Lead Template-Plain Text + + Edit this subject + visualforce + Aloha +