Skip to content

Contract Builder ​

The Contract Builder is the visual editor used to compose a contract document inside Kinderpedia — adding sections, dragging clauses from the library, inserting variables that auto-fill from the linked lead, and managing per-section signing controls.

Open from Templates → Contracts → [pick template] → Edit, or directly from a contract's draft view if you're tweaking a one-off.

What the builder is for ​

Contracts in Kinderpedia aren't just static PDFs — they're composable documents assembled from reusable pieces:

  • Sections — the major blocks (Parties, Programme details, Fees, Terms, Signatures)
  • Clauses — pre-approved boilerplate from the Clause Library (refund policy, photo consent, GDPR notice, etc.)
  • Variables — dynamic placeholders ({child_name}, {tuition_amount}) that bind to lead data at send time
  • Custom blocks — free-form rich text for ad-hoc clauses

The builder lets a non-developer assemble all this without touching Word, exporting to PDF, or asking IT for help.

The editor surface ​

Three columns:

ColumnWhat it shows
Left railSection list (drag to reorder), clause library palette, variable picker
CentreThe live document — WYSIWYG with section boundaries visible
Right railSection properties (title, conditional visibility, signing tabs, formatting)

Drag a clause from the left rail onto a section in the centre — it appears in-place, fully editable. Insert variables via the variable picker or by typing { and autocompleting.

Sections ​

Each section has:

  • Title — shown in the rendered PDF + the section list
  • Body — rich text (headings, lists, tables, formatting)
  • Conditional visibility (optional) — show only if a lead field meets a condition
  • Page break — force a new page before this section in the PDF
  • Signature tabs (optional) — DocuSign sign/initial/date tabs anchored to this section

Reorder by dragging the section in the left rail. Duplicate via right-click → Duplicate. Delete is irreversible (no undo per-section; use full-document undo).

Variables ​

Variable picker offers:

CategoryExamples
Lead fields{child_name}, {date_of_birth}, {enrolment_year}, {program}
Parent fields{father_name}, {mother_name}, {father_email}, {mother_email}
Custom fieldsAny custom field defined on the lead
School{school_name}, {school_address}, {school_admin_name}
Contract{contract_number}, {contract_date}, {total_amount}
Dates{today}, {contract_year_start}, {contract_year_end}

At send time, every variable is substituted with the actual value from the linked lead. Unbound variables render as [—] so missing data is visible in the final PDF rather than silently blank.

Conditional sections ​

A section can carry a condition like:

Show this section if: lead.program === 'Toddler'

Available operators: equals, not equals, is empty, is not empty, greater than, less than, contains. Chain multiple with AND / OR.

Use cases:

  • "Show the Toddler-specific clauses only if program is Toddler"
  • "Show the discount section only if a discount field is set"
  • "Hide the optional GDPR opt-in section if the lead is from a non-EU country"

Conditional sections evaluated at render time. They appear or disappear from the final PDF; what gets signed is exactly what's visible.

Signing tabs (DocuSign) ​

A section can carry DocuSign tabs anchored to specific positions:

  1. Open the section's right-rail properties.
  2. Click Add signature tab.
  3. Pick the tab type (Sign / Initial / Date / Text / Checkbox).
  4. Bind to a signer slot (Signer 1 / 2 / 3).
  5. Position by clicking inside the rendered section preview.

When the contract is sent via DocuSign, these tabs auto-translate to DocuSign's tab format on the assembled PDF. See DocuSign signing for how tabs flow into the envelope.

Preview ​

The Preview button at the top renders the contract as it would look for a specific lead. Pick a sample lead from the dropdown → live preview replaces the editor with the final document. Useful for:

  • Seeing variable substitution in action
  • Verifying conditional sections appear/disappear correctly
  • Checking page breaks land nicely
  • Confirming signing tabs are positioned reasonably

Preview is read-only. Click Back to editor to return.

Versioning ​

Every Save creates a new version (auto-stamped with timestamp + your user). The version history is visible under Templates → [pick] → History:

  • Restore any prior version (creates a new version that matches the old)
  • Compare two versions side-by-side (diff highlighted)
  • Locked versions (in use by sent contracts) can't be deleted

Already-sent contracts always reference the version of the template at the time of send — editing the template later doesn't retroactively change them.

Permissions ​

  • Viewing the builder: contracts.view
  • Editing: contracts.manage
  • Publishing (making a template available for use): contracts.publish

Most schools grant contracts.manage to a small "contract editor" group and have everyone else just use templates.

Importing existing PDFs ​

If you have a contract already designed in Word/InDesign:

  1. Export to PDF.
  2. Upload via Templates → Contracts → New → Upload PDF.
  3. The builder converts the PDF to editable sections via OCR + layout analysis (best-effort).
  4. Edit the resulting structure in the builder normally.

Conversion fidelity depends on the source PDF — clean text-based PDFs convert well; scanned image PDFs convert poorly (you'll need to recreate manually).

Clause library integration ​

The left rail's clause palette pulls from the Clause Library. Drag any clause into a section to insert it. Updates to a clause in the library don't retro-update past insertions — each drag creates an independent copy in the document.

For evergreen text (privacy policies, terms that update periodically), use a linked clause instead — these stay live and reflect library edits on every send.

Common errors ​

SymptomLikely cause
Variable shows [—] in PDFThe bound lead field is null / missing. Fill on the lead, or change the variable to optional.
Signing tabs not appearing on DocuSignTab anchor reference doesn't match the rendered text. Re-anchor in the section.
Conditional section appearing when it shouldn'tCondition evaluation differs from expected. Use Preview to debug.
Page breaks render weirdlyPage break placement conflicts with section content. Move the break before / after the section.
Save fails 422Document exceeds 200 sections or 100,000 characters total — split into multiple templates.

Performance ​

The builder uses a virtual scroll for the editor surface, so very large contracts (50+ sections) stay responsive. Renders may slow on lower-end devices when previewing — fall back to the PDF export for review on those.

Kinderpedia Admissions Help Center