Back to app
Example: new client assessment

Example: new client assessment

Import a reviewed questionnaire as a multi-step conversion page with exact wording, a referral code captured from the link, a question that only shows when it applies, two permission statements, and an opportunity binding.

Reviewed AdminVertiqa 1.75+

The business: a consulting firm whose intake questionnaire has already been written and reviewed, including permission wording their lawyer approved. Earlier attempts to rebuild it in a form tool quietly dropped questions and swapped the permission language for something generic.

The goal: publish the reviewed questionnaire exactly, split into short steps, and route each completed assessment to an opportunity the partner team works.

This is one of three conversion page examples. The walkthrough uses a trimmed, 13-question version of the questionnaire.

About a minute, narrated: from pasted specification to an editable draft. Open video

Start: import the specification

  1. Open Conversion pages (route /crm/conversion-pages) and select Import specification.
  2. Paste the JSON specification. Download schema gives you the format to write it against.
  3. Select Create draft.
The Import specification (JSON) panel, validated by the same contract used for publish, with a Download schema link, the new client assessment specification pasted into the box, and Cancel and Create draft buttons, Create draft highlighted.
Import checks the specification with the same rules Publish uses.

Import creates a draft with exactly the fields, IDs, options and wording in the specification. No AI, no paraphrasing. The same rules check the specification on import and again on publish, so anything import accepts will publish. The draft appears in the list. Select Edit draft to open it in the builder.

A trimmed version of the specification:

{
  "slug": "new-client-assessment",
  "formConfig": {
    "type": "form",
    "schemaVersion": 2,
    "name": "new_client_assessment",
    "displayName": "New client assessment",
    "entity": "opportunity",
    "presentation": "wizard",
    "steps": [
      { "name": "about_you", "title": "About you",
        "fieldNames": ["full_name", "work_email", "company_name", "partner_code"] },
      { "name": "engagement", "title": "What you need",
        "fieldNames": ["engagement_type", "budget_band", "start_window"] },
      { "name": "current_state", "title": "Where things stand",
        "fieldNames": ["team_size", "systems_in_use", "process_maturity", "blocker_notes"] },
      { "name": "permissions", "title": "Permissions",
        "fieldNames": ["consent_intake", "consent_marketing"] }
    ],
    "fields": [
      { "name": "full_name", "label": "Your name", "type": "text",
        "required": true, "semanticType": "full_name" },
      { "name": "work_email", "label": "Work email", "type": "email",
        "required": true, "semanticType": "email" },
      { "name": "company_name", "label": "Company", "type": "text",
        "required": true, "semanticType": "company" },
      { "name": "partner_code", "label": "Referral code", "type": "hidden",
        "hidden": { "source": "query", "key": "ref" } },
      { "name": "engagement_type", "label": "What kind of engagement?", "type": "select",
        "required": true,
        "options": [
          { "value": "assessment", "label": "One-off assessment" },
          { "value": "programme", "label": "Multi-month programme" },
          { "value": "advisory", "label": "Ongoing advisory" }
        ] },
      { "name": "budget_band", "label": "Approved budget range", "type": "select",
        "required": true,
        "options": [
          { "value": "under_25k", "label": "Under 25k" },
          { "value": "25k_100k", "label": "25k – 100k" },
          { "value": "over_100k", "label": "Over 100k" }
        ] },
      { "name": "systems_in_use", "label": "Systems in use today", "type": "multi_select",
        "options": [
          { "value": "erp", "label": "ERP" },
          { "value": "crm", "label": "CRM" },
          { "value": "spreadsheets", "label": "Spreadsheets" },
          { "value": "custom", "label": "Custom internal tools" }
        ] },
      { "name": "process_maturity", "label": "How documented are your processes?",
        "type": "rating",
        "scale": { "min": 1, "max": 5,
          "labels": { "1": "Nothing written down", "5": "Documented and followed" } } },
      { "name": "blocker_notes", "label": "What's blocking you right now?",
        "type": "textarea",
        "visibilityCondition": { "field": "process_maturity", "operator": "<=", "value": 3 } },
      { "name": "consent_intake", "label": "I agree to my answers being used to prepare a proposal.",
        "type": "checkbox", "required": true, "semanticType": "consent" },
      { "name": "consent_marketing", "label": "Send me occasional research briefings.",
        "type": "checkbox", "semanticType": "consent" }
    ]
  }
}

A specification that carries only formConfig, like this one, brings the questions in exactly and leaves the rest to you in the builder: the page sections, scoring, endings and submission binding. The reviewed questionnaire comes in word for word, and you decide what happens to the answers. You can also include pageConfig and bindingConfig in the specification to import those too.

Two details worth copying:

  • partner_code is hidden and read from the link. Referral partners send people to …/pages/new-client-assessment?ref=northline, and the code arrives with the answers without anyone typing it. In the builder, the field's type is Hidden metadata with source Query and key ref.

    The Referral code field row with field ID partner_code, type Hidden metadata, the step About you, source Query and key ref.
    A hidden field reads its value from the page link.
  • blocker_notes only shows when it applies. It appears only for people who rate their process maturity 3 or below, so a mature team never sees a question that would feel accusatory. A field that stays hidden can't block submission, even when it's required.

Multi-step

Form tab. Set Form layout to Multi-step. Each step has a title and a field count; move steps up or down with the arrows, add one with + Step, and move a question to another step from its row under Form fields.

The Form layout set to Multi-step (Visitors answer one step at a time, with Back and Next), with four steps: About you (4 fields), What you need (3 fields), Where things stand (4 fields) and Permissions (2 fields), each with up, down and delete controls, and a + Step button.
Four steps. About you counts the hidden referral code, which visitors never see.

Visitors get a step counter, Back and Next, and each step is checked before they move on, instead of a wall of errors at the end.

The published New client assessment page showing Step 1 of 4, the section About you, required fields for name, work email and company, and a Next button.
Step 1 shows three fields. The referral code is captured silently.

A step whose fields are all hidden, or that only holds hidden capture fields, is skipped rather than shown empty. On step 3, the blocker question appears as soon as someone picks 3 or lower:

Step 3 of 4, Where things stand, with team size 12, ERP and Spreadsheets ticked under Systems in use today, 2 selected on the How documented are your processes? scale from Nothing written down to Documented and followed, and the question What's blocking you right now? highlighted below it.
Rating 2 reveals What's blocking you right now?

Visitors can't save and finish later, so every question costs you. The page reports views, submissions and conversion for the page as a whole. Judge the length by that conversion rate, and cut questions until it stops improving.

Permission statements: why this page exists

Handoff tab, under Submission binding → Permission statements. Add two statements with Add statement, whose IDs match the two checkbox field IDs exactly.

Two permission statements: consent_intake with purpose intake, the text I agree to my answers being used to prepare a proposal, and Required ticked; and consent_marketing with purpose marketing_email, the text Send me occasional research briefings, Required not ticked, and the channel email.
The text you publish is stored with every response.
Statement IDPurposeRequiredChannel
consent_intakeintakeYesNone
consent_marketingmarketing_emailNoemail

The published text is fingerprinted and stored with every submission, so each response proves which wording that person agreed to, not merely that a box was ticked. If you change the wording later, publishing asks you to approve the change, and earlier responses keep pointing at the old text.

People can withdraw either permission. A withdrawal made through the permission link updates the permission record without changing the submission that shows what they originally agreed to.

Scoring for triage, not rejection

Scoring tab for the rules and thresholds; Page tab for the endings they choose.

LabelWhenPoints
Budget over 100kbudget_band = over_100k40
Budget 25k–100kbudget_band = 25k_100k25
Multi-month programmeengagement_type = programme20
Low process maturityprocess_maturity <= 215
Under 25kbudget_band = under_25k-20

Qualified at 50, review at 20, everything else Not a fit, which here means "worth a templated reply, not a partner's hour."

Endings:

  • Qualified: "Your assessment is with a partner. Book the readout call now." with the Partner readout (45 min) booking link.
  • Needs review: "We'll come back within two working days with either a proposal or a straight no."
  • Not a fit: "This looks smaller than the engagements we take on. Here's the self-serve guide instead."

Binding: an opportunity, with the answers on it

Handoff tab, under Submission binding.

The Submission binding section with A submission creates set to Opportunity intake (Each submission opens an opportunity in your sales pipeline rather than a lead) and Destination pipeline set to Use the default pipeline.
Opportunity intake skips the lead and creates the deal directly.
  • A submission creates: Opportunity intake. These are qualified engagements, not early-stage leads, so they go straight into the sales pipeline. Pick the partner team's pipeline under Destination pipeline.
  • Carry answers onto the record: map engagement_type to Engagement type, budget_band to Budget band and partner_code to Referral partner. The partner team can then filter the pipeline by referral source without opening a submission.
  • Confirmation email: on. A long form that answers with silence is a form people assume is broken.
  • Submission alerts: off. Nobody needs a ping per assessment; the team works the pipeline.

After publishing

Two weeks in, the firm rewords one permission statement. Publish lists the wording change for approval before it goes out. The wording that was live for those two weeks stays attached to those responses on the Versions & test tab. Rollback publishes a new version from the previous one; it doesn't rewrite what happened.

If an assessment arrives during a CRM outage, its dispatch error shows on the Submissions tab with Retry routing beside it. The answers are safe: recording the submission and creating the opportunity are separate steps on purpose.

When a client later asks what they were asked and what they agreed to, the submission sheet answers it on one screen: the answers, labelled with the form version they were collected under, the opportunity they created, and the permission records. If your retention settings have since removed the answers, the sheet says when, and keeps the routing and permission records.

Learn more about the Vertiqa CRM →