Skip to content

Mapping a starter form

Every starter in New Form is created with no Salesforce mapping on any field. That is deliberate: a mapping naming an object your org does not use, or a field your permission set cannot write, would break on a real respondent’s answers at processing time. The starter gives you the fields and the layout, and you spend a few minutes pointing them at your own objects.

Unmapped is a silent state. The form renders, respondents submit, and every answer is staged in Sliick Responses exactly as it should be. Nothing errors. The answers simply never reach a Contact, Lead or Case until you map the fields and process the submission. If you only ever read responses in the console or export them to CSV, you can stop here: mapping is optional.

  1. Open the form in the Form Builder by clicking the form’s name on the dashboard.
  2. Map one field at a time: select the field, then click Map field next to Salesforce mapping and pick the object and the field. See Mapping fields to Salesforce.
  3. If an object you expect is missing from the picker, your user has no access to it. The picker only lists objects and fields you can actually create records with.
  4. When you are done, use View field mappings to check every mapping and every match key in one list before you publish.

Two things to check before following the Contact form recipe: some orgs do not license or enable Cases at all, and orgs on person accounts treat Contact differently. If either is true for you, map the message question somewhere else, such as a custom object or a long text field on the Contact, and everything else here still holds.

Five fields, two objects: the person goes on a Contact, their question goes on a Case.

Field on the formMap toAlso do this
First NameContact.FirstName
Last NameContact.LastNameThe Contact’s only required field
Email AddressContact.EmailTick Use for matching
How can we help?Case.DescriptionThe ask belongs on a Case, not on the person
(add) Hidden field originCase.OriginDefault Value Web
(add) Hidden field subjectCase.SubjectDefault Value Website contact form

Why tick Use for matching on Email. A returning respondent then updates their existing Contact instead of creating a second one. That is right for a contact form and wrong for an anonymous survey, where you want every response to stand alone.

Why the two hidden fields. A Case with no Subject is unreadable in a list view, and Origin is what tells your support team the Case came from the web. The respondent should not be typing either, so they are stamped instead.

You do not have to link the Case to the Contact. Case has exactly one lookup to Contact, so Sliick fills it in when it creates the pair. You are only asked to choose when an object has two or more lookups to the same target. See The form’s object model.

  1. Drag Hidden Field from the palette’s Advanced group onto the canvas.
  2. Set its API Name (origin) and Label (Origin: respondents never see it, the label is for you).
  3. Type the fixed value into Default Value (Web).
  4. Map it like any other field.

A mapped hidden field with a Default Value is stamped onto the record on every submission, even one whose answers never carried that key. That is how a required target field gets filled without asking the respondent anything, and it is the pattern you will reach for again and again.

The starter with a real choice in it. Pick one of three shapes.

Option A, Lead. Best when the people registering are strangers you want worked by sales or marketing afterwards. Map Attendee First Name, Attendee Last Name and Email to Lead.FirstName, Lead.LastName and Lead.Email, tick Use for matching on Email, map Company to Lead.Company, and add a hidden lead_source field mapped to Lead.LeadSource with a Default Value of Web.

Do not skip the Company mapping. Lead.Company is required on every Lead, so a Lead-mapped form with nothing feeding it collects answers happily and then fails at processing on every single submission, days after you published it, on real respondent data. If asking for a company is wrong for your event, delete that field and add a Hidden field mapped to Lead.Company with a constant Default Value instead. Know the trade: every attendee is filed under one company name, and that name becomes the Account name if anyone converts the Lead.

Option B, Contact. For member or customer events, where a Lead per registration would be noise. Map the three attendee fields to Contact.FirstName, Contact.LastName and Contact.Email and tick Use for matching on Email. Contact has no Company field of its own, so delete the starter’s Company field or leave it unmapped.

Option C, Campaign Member. The most accurate model, and the one a starter cannot ship, because it needs an ID from your own org.

  1. Do Option A or B first: a Campaign Member has to point at a Lead or a Contact.
  2. Add a hidden campaign field mapped to CampaignMember.CampaignId, with the campaign’s 18-character ID as its Default Value, copied from the campaign record’s URL.
  3. Optionally add a hidden member_status field mapped to CampaignMember.Status, with a value from that campaign’s own status list, usually Registered.

Sliick fills in the Lead or Contact reference on the Campaign Member for you. One form serves one campaign: duplicate the form per event and change the ID, or keep the campaign out of the form and add members with a Flow on the staged submission instead.

Leave these unmapped. That is the recommendation, not a gap. A survey response is not a record about a person, it is a measurement, and all three survey starters work fully unmapped: every answer is readable in Sliick Responses, filterable and exportable to CSV, and View results gives you the distribution of scores.

Map them only when you have somewhere specific for the score to live, such as a custom survey object or a score field on the Case or Contact the survey followed up on. If you do:

  • Do not tick Use for matching on anything. Each response should be its own record, and matching would have the second response overwrite the first.
  • To attach a response to the record it is about, add a hidden field mapped to the lookup and pass the ID in through the link. See Sharing a form.

Mapping is not finished when the picker closes. Do one round trip:

  1. Publish the form, open its share link, and submit one test response.
  2. Open Sliick Responses, find the row, and click it to inspect the answers before anything is written.
  3. Click Process. The status should move to Completed.
  4. Open the record it created and check the fields landed where you expected.

If the row goes to Failed, the reason is on the row and it is almost always a required field on the target object with nothing mapped to it, or a field your user cannot write. Fix the mapping and use Retry: the original answers are kept exactly as submitted. See Processing responses onto records.