This repository is an overview of the templates we offer for building Salesforce-native digital experiences with FinDock Payment Experiences. There are three types of templates:
- Site template: a full Experience Cloud site template that that leverages our Flow templates (deployed separately) and managed Lighting Web Components (LWCs)
- Flow template: a complete Flow for setting up a payment using our managed LWCs
- LWC template: LWC template for building digital experiences without Flows
All templates are meant to be a starting point for your own configuration or custom development to fit specific use cases, branding, etc.
Out-of-the-box, all templates are:
- Accessible and WCAG compliant
- Fully localizable (language, currency, payment methods, etc.)
- Configurable to support multi-currency
- Configurable to support payment methods through FinDock native processing and integrated Payment Service Providers
- Fully extendable with Salesforce technology and clouds
If you prefer to build a fully custom implementation, on Salesforce or outside of Salesforce, please see our custom Experience Cloud implementation repository or our Payment API documentation.
Membership, Subscription, Commerce, etc.
- Checkout flow: a simple Flow template for creating a payment form
- Checkout site: Experience Cloud site template that implements the Checkout flow template
Fundraising
- Donation flows for Fundraising: Multi-screen Flow template for collecting donations in orgs with Fundraising enabled (NPC, EDU)
- Donation flows for Fundraising UK: Multi-screen Flow template for collecting donations and Gift Aid in orgs with Fundraising enabled (NPC, EDU)
- Donation flows for NPSP: single and multi-screen Flow templates for collecting donations in orgs with NPSP
- Donation site Experience Cloud site template that implements the Donation flows for Fundraising and NPSP templates
Any use-case
- LWC: pro-code template for custom LWCs when you need full code control over layout, validation, navigation, etc. without using Flow. Components integrate with FinDock Payment API and are fully configurable.
The steps below apply to every payment template in this project family — Flow-based or LWC-based — for any page that needs to accept payments from unauthenticated (guest) users. Each sub-repo's README links back here instead of repeating these steps.
- Follow these instructions to set up Guest User access for your Experience Cloud site.
- The FinDock Experience Cloud permission set must be assigned to the site's Guest User.
- Go to Experience Cloud Administration → Preferences → enable Allow guest users to access public APIs.
If any of these are missing, guest-user payments will fail at runtime even though the page renders correctly.
The out-of-the-box FinDock Experience Cloud templates (donation flows, checkout flows, and pro-code payment forms) are built to be fully localizable out of the box. Every text string shown to a payer originates from a translatable source, while currencies and numbers are automatically formatted according to the payer's locale.
This guide is for administrators, business consultants, and Salesforce developers deploying FinDock payment templates who want to offer multi-language payment experiences.
ℹ️ INFO: Localization relies on standard Salesforce capabilities: Translation Workbench, XLIFF Import, Experience Builder Languages, and CMS Content Translation. No custom FinDock configuration is required.
Payer-facing content in the templates is driven by four primary sources:
| Source | What it covers | How you translate it |
|---|---|---|
| Custom Labels (LWCs & Messages) | All component labels (pay button, payment selector, amounts, error messages, progress stages). | Bulk update via the repo's CustomLabels_template.xlf file, then import to Translation Workbench. |
| Experience Cloud Site Content | Headers, footers, legal text, page titles, and CMS content. | Experience Builder (Settings → Languages → Export/Import Content) or standard LWR CMS translation. |
| Flow Screen Text | Screen headings, display text, and field labels defined inside template flows. | Translation Workbench → Flow (manual UI translation required; Salesforce rejects Flow imports via XLIFF). |
| Picklist Values | Field values rendered on screens (e.g., recurring payment frequencies). | Translation Workbench → Picklist Value. |
ℹ️ Automatic Locale Formatting: Amounts, currencies, and numbers are not translated manually. They are dynamically formatted at runtime using
@salesforce/i18nandIntl.NumberFormatbased on the payer's locale (e.g.,€ 1.000,00vs$1,000.00).
Before starting the translation process, ensure:
- Target languages are added and activated in Setup → Translation Language Settings.
- Translation Workbench is enabled, and your user is assigned as a translator for the target languages.
- You have access to Experience Builder for your site.
Every FinDockLabs repository includes a pre-packaged template file — CustomLabels_template.xlf — containing all required LWC labels and core dependencies.
-
Locate the template: find
CustomLabels_template.xlfin your repository (/translations/). -
Copy and rename: create a copy of the file using your target language code (e.g.,
CustomLabels_nl_NL.xlf). -
Set target language: open the file in an editor (VS Code, Notepad++), replace
TARGET_LANGUAGE_CODEin thetarget-languageattribute with your language code:<file original="Salesforce" source-language="en_US" target-language="nl_NL" translation-type="metadata" datatype="xml">
-
Add translations: enter translated values between
<target>and</target>tags. -
Import to Salesforce: go to Setup → Translation Workbench → Import, select your
.xlffile, and upload it.
Translate static page elements, footers, headers, and CMS articles:
- In Experience Builder, go to Settings → Languages.
- Add your target language(s).
- Translate content:
- Directly in Builder: switch to the target language in the top bar and edit text components on screen.
- Export/Import (LWR bulk): export site content via Settings → Languages → Export Content, translate the generated XML/XLIFF file, and import it back.
- Ensure the Language Selector component is placed in the header or navigation if you want guest users to switch languages manually.
Option A — Bulk translation via Export/Import (recommended for large flows):
- Go to Setup → Translation Workbench → Export.
- Select Bilingual and click Export.
- Locate the generated
.xlffile in your unzipped download. - Search for
Flow.Flow.<YourFlowName>tags (e.g.,Flow.Flow.Donation_Flow...). - Translate the
<target>strings and import the file back via Setup → Translation Workbench → Import.
Option B — Manual UI translation (quickest for simple setups):
- Go to Setup → Translation Workbench → Translate.
- Set Setup Component to Flow.
- Select your Flow and enter translations for field labels and screen display text directly in the UI.
- Go to Setup → Translation Workbench → Translate.
- Set Setup Component to Picklist Value.
- Select the object and picklist field (e.g., Payment Frequency).
- Enter translations so picklist choices match the payer's active language.
- Publish your Experience Cloud site.
- Open the page in an incognito browser window as a guest user.
- Switch to your target language (or navigate via the language URL prefix, e.g.,
/nl/). - Verify that Custom Labels, Flow screens, CMS text, and formatted amounts display correctly.
If you are extending or customizing the FinDock payment templates:
- Never hardcode user-facing strings: always create a Custom Label (
$Label.c.your_label_name) and reference it in your LWCs or Flow screens. - Keep Flow formulas translatable: do not hardcode literal text inside Flow formulas. Use Custom Label references (
{!$Label.c.your_label_name}) instead. - Use native i18n modules: format currency and dates using
@salesforce/i18nand JavaScriptIntlutilities (Intl.NumberFormat,Intl.DateTimeFormat) to preserve automatic locale awareness.