Formstack Customization Services

Every Customization Is a Debt. Some Are Worth Borrowing For.

Formstack customization services cover the work beyond configuration: theming and custom CSS, bespoke validation, tailored respondent experiences, and Salesforce-side extensions in Apex, Lightning Web Components and Visualforce. Twopir Consulting builds those extensions so the managed packages can still be upgraded — because a customization that blocks the next release is not a feature, it is a liability with a delivery date attached.

Extension Model
PLATFORM BASELINE Standard Configuration What the product does natively Managed Packages Upgraded by the vendor Themes Publishing Surfaces Standard Objects TWOPIR EXTENSION LAYER Presentation Theme · Custom CSS Accessible by design Behaviour Bespoke validation Conditional experience Platform Code Apex · LWC · VF Outside the package EXTEND ALONGSIDE, NEVER INSIDE 2πr WHAT WE LEAVE BEHIND Upgrade-Safe The next package release is not blocked by us Owned A named person knows why it exists Removable Documented well enough to be taken out again JUSTIFY · ISOLATE · BUILD · DOCUMENT · REVIEW
Definition

What Counts as Formstack Customization?

Formstack customization is anything that changes behaviour or appearance beyond what the product's own settings express. In practice that spans three levels: presentation work such as theming and custom CSS; behavioural work such as bespoke validation, tailored respondent experiences and custom scripting; and Salesforce-side development in Apex, Lightning Web Components or Visualforce that extends what the managed packages do inside your org.

Every one of those carries an ongoing cost, because it is something the vendor will not maintain for you. That does not make customization wrong — it makes it a decision that should be justified, isolated from the parts the vendor upgrades, documented, and reviewed periodically to check it is still needed.

The first question we ask is whether configuration can do it. A surprising proportion of customization requests turn out to be capabilities the platform already has, asked for in different words. That is not a criticism of the person asking — feature surfaces are wide and change regularly. It is simply the cheapest possible outcome, and it is worth ten minutes of checking before anyone writes code.

The Boundary

Configuration, Customization and Custom Development

The three levels differ in who can change them, what happens at upgrade time, and what it costs when the person who built it leaves. Knowing which level a request sits at is most of the decision.

Three levels of change compared
DimensionConfigurationCustomizationCustom development
What it isSettings the product exposes: fields, logic, routing, themes, delivery options.Custom CSS, tailored experiences, bespoke validation, scripted behaviour.Apex, Lightning Web Components, Visualforce, external services that extend the platform.
Who can change itA trained administrator.Someone comfortable with front-end code or the specific customization.A developer, with a deployment path and tests.
Upgrade behaviourCarried forward by the vendor.May break when the underlying markup or behaviour changes.Yours to regression-test against each package release.
Ongoing costEffectively none beyond normal administration.Low but real — someone must own it and re-test it.Highest: tests, deployments, documentation, upgrade regression.
When it is the right answerNearly always, when it can express the requirement.Brand consistency and respondent experience beyond the theme editor's reach.Logic that must run inside a platform transaction, or behaviour nothing else can provide.
Warning signConfiguration so convoluted it needs its own documentation.CSS that targets deeply nested generated selectors.Code that reimplements something the platform already does.
Scope of Work

Six Kinds of Customization We Deliver

Theming & Brand Alignment

Forms and documents that look like they belong to your organisation rather than to a form builder.

  • Theme built from your design system tokens
  • Typography, colour and spacing alignment
  • Reusable theme applied across the estate
  • Contrast and focus states that pass review
  • Consistency across every publishing surface

Custom CSS & Front-End

Presentation work that survives a platform update rather than breaking silently on a Tuesday.

  • Stable selectors rather than deep generated ones
  • Responsive behaviour across real devices
  • Accessibility preserved, never traded for aesthetics
  • Custom CSS documented with its purpose
  • Regression checklist for platform updates

Bespoke Validation

Rules that cannot be expressed in standard field validation, enforced at the point of entry.

  • Cross-field and conditional rules
  • Format and check-digit validation for reference numbers
  • Lookup against an external source before submission
  • Business-rule checks that prevent invalid states
  • Error messages that tell the user what to do

Salesforce-Side Extensions

Platform code that extends the managed packages without preventing them being upgraded.

  • Apex written outside the package namespace
  • Lightning Web Components for record-context experiences
  • Visualforce where legacy surfaces require it
  • Bulkified, governor-safe processing
  • Test coverage that exercises the failure paths

Custom Prefill & Context

Forms that arrive knowing who the respondent is, without exposing more than they should.

  • Prefill resolved server-side rather than from a URL
  • Portal and authenticated-context prefill
  • Conditional prefill by record state
  • Access review so prefill cannot over-share
  • Behaviour defined for the unidentified visitor

Customization Governance

The register that stops customizations accumulating faster than anyone can remember why.

  • Inventory of every customization and its justification
  • A named owner per item
  • Upgrade regression checklist
  • Periodic review against current platform capability
  • Removal path documented for each one
Upgrade Safety

How We Keep Customization From Blocking the Next Release

Formstack ships package updates — including compatibility with each Salesforce seasonal release. An org that cannot take those updates has a problem that compounds every quarter.

Extend alongside, never inside Custom Apex and components live in your own namespace and call the package's supported surfaces. Nothing we write depends on the package's internals.
Prefer stable selectors Custom CSS targets the most stable selector available rather than a deep chain of generated markup — deep chains are what break on an otherwise harmless UI update.
Sandbox first, every time Package updates are applied and regression-tested in a sandbox before production. That requires a sandbox refresh discipline, which is a prerequisite we establish rather than assume.
A written regression checklist Each customization has a specific test in the upgrade checklist. "Test the forms" is not a checklist; "confirm the cross-field validation on the claims form still blocks submission" is.
A documented removal path Every customization records what it does, why it exists and what would need to change for it to be removed. Platforms catch up, and the register is how you notice when one has.
Periodic review The register is reviewed against current platform capability. Customizations that the product now does natively are retired rather than maintained out of habit.
Failure Modes

Six Customizations We Are Usually Asked to Unpick

CSS Nobody Dares Touch

Hundreds of lines of overrides, no comments, targeting selectors that no longer exist in half the cases. Removing any of it is a gamble, so it accumulates instead — and every platform update becomes a nervous week.

A Customization That Blocks Upgrades

The org cannot take a package update because something custom depends on current behaviour. Compatibility fixes and new capability both stall, and the gap between installed and current widens every release.

Code That Reimplements a Native Feature

Custom logic doing something the platform has done natively for two years. It was justified when written; nobody has reviewed it since, and it is now pure maintenance cost with no benefit.

Styling That Broke Accessibility

Focus outlines removed because they looked untidy, error states signalled by colour alone, contrast reduced for aesthetics. The form looks better in a screenshot and fails for keyboard and screen-reader users.

Client-Side Validation Only

The rule runs in the browser and nowhere else. Anyone who bypasses the form — a direct submission, a script, a disabled JavaScript session — writes invalid data straight past it. Validation that matters has to exist server-side too.

The Person Who Built It Has Left

No documentation, no tests, no stated justification. The customization cannot be safely changed or safely removed, so it stays — and it constrains every decision made around it from now on.

Common Questions

Answers Before the First Call

It should not, and the way to keep it that way is to extend alongside the package rather than depend on its internals. Custom Apex and components live in your own namespace and call supported surfaces; custom CSS targets the most stable selectors available. Then each customization gets a specific entry in an upgrade regression checklist and is tested in a sandbox before production. This matters because Formstack ships package updates including Salesforce seasonal-release compatibility — an org that cannot take those updates falls further behind every quarter, and the cost of catching up grows faster than the cost of staying current.

Substantially. Formstack provides theming with design and CSS tools, and with custom CSS on top of that you can generally match a brand closely enough that a respondent cannot tell the form was not built as part of your site. The two constraints worth stating up front are accessibility — focus states, contrast and error signalling are not negotiable and we will push back if a design removes them — and maintenance, because styling that fights the platform rather than extending it is what breaks on the next update. A theme applied consistently across the estate is worth considerably more than a bespoke treatment on one form.

Yes — cross-field rules, format and check-digit validation, and lookups against an external source before submission are all achievable. The design principle we insist on is that validation which actually matters must also exist server-side or in the destination system. Client-side validation improves the experience by catching mistakes early; it does not enforce anything, because any path that bypasses the form bypasses it too. If a rule protects data integrity or a compliance obligation, it needs a second enforcement point behind the form.

Inventory before you touch anything. We catalogue every customization, work out what it does, and — the important part — assess whether the platform now provides it natively. In inherited estates a meaningful share of custom code turns out to be reimplementing something the product has since shipped, and retiring those is pure reduction in maintenance cost. What remains gets a written justification, a named owner and an entry in the upgrade regression checklist. That is usually a short, well-defined engagement, and it is the right first step before any new customization is added on top.

Three cases. When configuration can express the requirement, even slightly less elegantly — the elegance is rarely worth the ongoing cost. When the customization exists to preserve a process that should itself be changed, which is customization paying to keep a bad process alive. And when nobody in your organisation will own it: an unowned customization is a future incident with a date on it, and the honest answer there is either to find an owner or not to build it.

Next Step

Describe What You Need Formstack to Do. We Will Check Whether It Already Can.

Tell us the behaviour you want rather than the customization you have in mind. A useful share of these turn out to be configuration, and where they genuinely are not, we will build the extension so it does not block your next package upgrade.

Built by a Salesforce Gold Partner. Every customization we deliver arrives with a justification, an owner and a documented removal path.