FormAssembly · Salesforce Connector

The form worked. Salesforce got a second copy of the same person.

The Salesforce connector can prefill from existing records, search before it writes, create across parent and child objects, and hand you a log when something fails. Most instances use about a third of that. Twopir Consulting configures the rest — the lookup rules, the multiple-record handling, the conditional writes and the recovery path. Match first, write second, log always.

Salesforce Connector Lifecycle
ON FORM OPEN Prefill from Records Contact · Account · Custom Dynamic Picklists Live values, not stale copies Related Records Secure Prefill Links Consent State TWOPIR CONNECTOR LAYER Lookup & Match Find before create Multiple-record rules Create & Update Parent and child Conditional writes Error Handling Stop or continue Logs · reprocess DESIGNED SO A SECOND SUBMISSION IS NOT A SECOND PERSON 2πr IN SALESFORCE No Duplicates Returning people update, not clone Complete Records Parent and child written together Recoverable Failures visible and reprocessable PREFILL · MATCH · WRITE · VERIFY · RECOVER
12+
Years CRM delivery
500+
Clients served
40+
Consultants
250+
Deployments

Trusted by 500+ organizations — including healthcare, higher education, nonprofit and financial services teams whose Salesforce records start life as a form submission.

Magnus Health
Ideal Health Consulting
Aventria
Social Justice Collaborative
LegalZoom

Built for Regulated Data Collection

  • Salesforce Partner
  • Prefill Connector
  • Lookups & Deduplication
  • Dynamic Picklists
  • Related Objects
  • Connector Logs
  • Response Reprocessing
  • AppExchange App
Where It Goes Wrong

Six connector problems that look like a Salesforce data problem

Each of these gets reported as bad CRM data and fixed with a deduplication tool or a cleanup project. The cause is upstream, in a connector configured for the day it was built. Cleaning the records without changing the connector just schedules the next cleanup.

The connector only knows how to create

Built and tested with data that had never been submitted before, so nobody noticed the missing lookup. Every returning applicant, patient or donor becomes a new record.

The lookup finds two records and gives up

Matching on email alone returns a household, a shared inbox or a person who appears twice already. Without an explicit rule for the multiple-records case, the connector picks one or fails.

Picklists are a copy of a list that has since changed

Options typed into the form when it was built. A programme ends, a campaign is renamed, a location closes — and submissions start arriving with values Salesforce will not accept.

Empty child records are created on every submission

A related object written unconditionally, even when the respondent skipped that section. The related list fills with blanks and the reports built on it stop being trusted.

Nobody reads the connector log

Every run is recorded and failed responses can be reprocessed, but only if someone looks. Submissions sit in FormAssembly having never reached Salesforce, sometimes for months.

The integration user cannot see what it needs to write

Record types, field-level security and sharing rules apply to the connector exactly as they do to a person. A permission tightened for good reasons breaks a mapping nobody associated with it.

What This Covers

The connector is a small integration platform hiding inside a form

The FormAssembly Salesforce connector reads from and writes to Salesforce around a submission. It can prefill a form from existing records including related objects, build dropdowns from live Salesforce values, search for a matching record before deciding whether to create or update, write across parent and child objects in one submission, create records only when a condition is met, and log every run so a failure can be corrected and reprocessed. Configuring it properly is integration work with a form-shaped interface, and it is where most of the value — and most of the damage — actually sits.

Where this page stops. This page is the Salesforce connector at depth. Sequencing several connectors across one submission, and deciding which system owns which field, is FormAssembly integration services. Reaching a system with no connector at all is FormAssembly API and custom integrations. What happens inside a single submission before the connector runs — logic, calculations, signature, payment — is FormAssembly form automation. Standing the platform up for the first time is FormAssembly implementation services.

What Twopir does, and what the product does. Prefill, lookups, multiple-record settings, dynamic picklists, conditional creation, connector logs and reprocessing are FormAssembly capabilities — the vendor built them. What we contribute is the design: which fields identify a person in your business, what happens when the lookup is ambiguous, which related records should exist, and who is told when a write fails. As a Salesforce Partner we can also change the Salesforce side when that is where the real fix belongs. Product documentation is the FormAssembly Resource Center.

What We Configure

Six capabilities most instances never switch on

None of these require code. All of them require a decision about your data that somebody has to make deliberately before the mapping is built.

Prefill from Existing Records

Stop asking people for data you already hold. A prefilled form is faster to complete and produces cleaner data, because confirming beats retyping.

  • Prefill from Contact, Account and custom objects
  • Related objects and records in a single prefill
  • One URL parameter driving a multi-object prefill
  • Secure prefill links for known respondents
  • Read-only display of values you do not want edited

Lookup, Match & Deduplication

The single highest-value configuration on this page. Search before you write, and decide in advance what an ambiguous match means.

  • Match criteria drawn from how your business identifies people
  • Explicit handling when a lookup returns several records
  • Create-or-update behaviour rather than create-only
  • Matching against related records, not just the primary object
  • Fallback behaviour when no match is found

Dynamic Picklists

Dropdowns built from live Salesforce data instead of a copy that silently goes stale the week after launch.

  • Options sourced from Salesforce picklists
  • Live lookups driven by other fields on the form
  • Dependent menus that narrow as the form is answered
  • Datasets and autosuggest for very long controlled lists
  • Graceful behaviour when a value has been retired

Related Objects & Conditional Writes

One submission often means several records. Which ones should exist is a business rule, and it belongs on the connector.

  • Parent and child objects written in one submission
  • Relationships established as records are created
  • Conditional creation so empty children are never written
  • Repeatable sections mapped to multiple child records
  • Campaign member, case and custom-object patterns

Error Handling & Recovery

Failures are inevitable. Whether they are noticed and recoverable is a configuration choice.

  • Stop-or-continue policy chosen per connector step
  • Stage placement matched to what the respondent must be told
  • Connector log review built into someone's routine
  • Correction and reprocessing of failed responses
  • Bulk reprocessing after an outage or a fixed mapping

Permissions & Change Control

The connector is a Salesforce user. It is subject to everything a user is subject to, and it breaks the same way.

  • Integration user profile, record types and field-level security
  • Sharing rules that let the connector see what it must write
  • Sandbox-first changes with a tested promotion path
  • A register of the fields each connector depends on
  • Change control between the org owner and the form owner
Diagnostics

What the symptom usually means before anyone opens the log

These are the patterns we find most often in a connector audit. They are offered as a starting point for your own admin, not as a substitute for reading the connector log.

Common symptoms, their usual cause, and where the durable fix belongs.
SymptomUsual causeWhere the fix belongs
Duplicate Contacts after every campaignNo lookup before the write, or matching on a field that is not unique.Connector — add the lookup and define the multiple-records behaviour.
Submissions missing from Salesforce entirelyConnector failed after the respondent was already redirected.Connector stage placement, plus a routine that reads the log.
Errors naming a field the form does not showA Salesforce validation rule or a newly required field.Salesforce — or the mapping, if the form should be collecting it.
Errors mentioning a value that no longer existsA static picklist copy in the form, retired in Salesforce.Connector — replace with a dynamic picklist.
Related lists full of blank child recordsChild objects created unconditionally on every submission.Connector — make creation conditional on real input.
Worked for a year, broke without a form changeA record type, permission or sharing change on the integration user.Salesforce, then change control so it does not recur.
How We Deliver

A connector audit before a single mapping changes

Durations describe typical engagements and depend on how many forms and objects are in scope. You get a fixed shape after stage one.

Stage 01

Connector & Log Audit

Every connector, its stage, its mapping, and the last months of log history — which is where the failures nobody actioned are recorded. One week.

Stage 02

Identity & Match Design

What identifies a person or organization in your business, what an ambiguous match means, and which related records should exist. Agreed in writing. One week.

Stage 03

Rebuild in a Sandbox

Lookups, conditional writes, dynamic picklists and error handling built against a sandbox org, never against production. One to three weeks.

Stage 04

Failure-Path Testing

Duplicates, ambiguous matches, rejected validations, retired picklist values, permission gaps and failed uploads — each one run deliberately. One week.

Stage 05

Promote, Reprocess & Hand Over

Promotion to production, reprocessing of recoverable historical failures, a field-dependency register, and change control with whoever owns the org. One week.

Evidence

Capture that reaches Salesforce with its context intact

The engagement below is Twopir's own, on the same architectural problem this page describes: an inbound enquiry becoming a Salesforce record automatically, with its source attached. Beside it, how one organization describes building forms against Salesforce in FormAssembly's own customer story.

Twopir Case Study

US Enterprise — Legal, Financial & Insurance Services

Automatic record creation on every qualifying enquiry, with campaign source carried through to closed revenue.

100% Call attribution to campaign source
Auto Lead creation on every qualifying enquiry
Closed Loop reporting back to revenue
Read the Capture-to-CRM Case Study
FormAssembly Customer Story
FormAssembly is a very high-utility tool for us because it’s plug-and-play. It would take us a significant amount of dev effort to build internally in Amazon, and we’d also spend a good amount of bandwidth maintaining that tool. With FormAssembly, you can just log in to Salesforce and create whatever forms you need.
Abhinav Singh Kakran Manager of Program Management, Amazon India — quoted in FormAssembly’s published case study, not a Twopir engagement
Why Twopir

When the fix is in Salesforce, we can make it

We help growing and mid-market companies solve complex CRM, integration and business system challenges, and we work with enterprise organizations on the same problems at larger scale.

We are Salesforce practitioners first

As a Salesforce Partner we read connector errors as Salesforce errors, because most of them are. Validation rules, record types and sharing are our home ground.

We settle identity before mapping

What makes two submissions the same person is a business question, not a technical one. Answering it first is what prevents the deduplication project a year later.

We read the log before we change anything

The last few months of connector history usually names the problem precisely, and often turns up recoverable submissions that can be reprocessed on the spot.

We build in a sandbox

Connector work writes real records. Building against production means testing with live data, which is how test submissions end up in a report someone presents.

We leave a field-dependency register

A list of what each connector depends on, so the next validation rule or retired picklist value is caught in review rather than in production.

Common Questions

What admins ask about the connector

With a lookup that runs before the write, and an explicit decision about what happens when it finds nothing, one record, or several. The connector can search Salesforce on whatever combination of fields identifies a person in your business, then create or update depending on the result — and each lookup carries settings for the multiple-records case. The failure we see most often is a connector configured only to create, because it was built and tested with data that had never been submitted before. Deduplication is a design decision made before mapping, not a cleanup job afterwards.

Yes. A prefill connector reads existing Salesforce data when the form opens, so a known person is not asked for what you already hold. It can pull from related objects and records as well as the primary one, and a single URL parameter can drive a prefill that reaches across several objects — which keeps the link short while the connector does the work. Prefill is also a data-quality control, not just a convenience: a respondent confirming existing values produces far cleaner records than one retyping them.

A dynamic picklist builds a form's dropdown options from live Salesforce data instead of a list typed into the form. Options can come from a Salesforce picklist or from a live lookup based on other fields on the form. Use them wherever the list changes without anyone remembering to update the form — programmes, campaigns, locations, product catalogues, assigned staff. Static copies of those lists are the usual reason a submission arrives with a value Salesforce no longer accepts.

Yes. Record creation can be made conditional, so a submission writes an object only when the data warrants it — a skip formula on the connector step is the usual mechanism. This matters for related records: creating an empty child object on every submission because a section was left blank produces a Salesforce report nobody trusts. The condition belongs on the connector rather than in the form, because it is a statement about the record, not about what the respondent sees.

It depends on the stage the connector runs in and the error-handling option chosen. The connector logs every run, and a failing step can be configured to end execution and return an error rather than letting later steps continue against a record that was never created. A failed response can be corrected and reprocessed afterwards, in bulk on Essentials plans and above. The design decision is who finds out: a connector in the after-submitted stage runs once the respondent has already seen the thank-you page, so nothing tells them, and only monitoring will.

Almost always because Salesforce changed, not FormAssembly. A retired picklist value, a newly required field, a tightened validation rule, a changed record type or a permission adjustment on the integration user will all stop a mapping that was correct when it was built. Nothing in the form changed, so the form is the last place anyone looks. The fix is usually in Salesforce, and the durable fix is a change-control habit: whoever owns the org needs to know which fields a connector depends on.

Both are supported and the choice is organizational rather than technical. FormAssembly's AppExchange app lets users reach their FormAssembly account from inside Salesforce without a separate login, which suits teams who live in the CRM and want form building next to the records. Working in FormAssembly directly suits teams whose form builders are not Salesforce users — marketing, programme or admissions staff. The connector behaves the same way either way, so this is a question about who builds forms, not about capability.

Next Step

Check one thing first: does your connector look before it writes?

Open your busiest form's connector and see whether there is a lookup before the create step. If there is not, you already know where your duplicate records come from — and that is a configuration change, not a cleanup project.

Or contact the team — a Salesforce Partner that treats forms as part of the org