Customization on Forms

Forms support two types of custom fields that extend the data collected on every transaction. Both are defined independently and both flow through to reports and scripts.

Transaction-Level Custom Fields

Defined on: the Campaign (form)
Stored on: every Transaction (PurchaseOrder) created by this form

These fields appear in the checkout flow and are collected once per transaction — regardless of which items the donor selects. Use them for:

  • Campaign-specific tracking fields (e.g., referral source, event code)
  • Data required for every transaction from this form
  • Fields used in GL posting or financial reporting

To configure: open the form → Custom Fields tab → add or create custom property definitions.

Item-Level Custom Fields

Defined on: the Item (OrderableItem)
Stored on: each Order Item (line item) in the transaction

These fields are collected when a donor selects a specific item. They capture per-selection data — meal choice, t-shirt size, tribute recipient, attendee name. Each line item in the transaction carries its own set of values.

See Custom Fields on Items.

Integration Codes on Forms

Integration codes are hidden custom fields on forms. They are not shown to donors but are accessible in scripts and reports. Common uses:

  • GL account codes for this form’s revenue
  • External system campaign identifiers
  • Form-level configuration values read by scripts

To add integration codes: open the form → Integration tab → Integration Codes section.

Access in scripts: campaign.get('FieldName').value

Available in reports: integration code values appear as selectable columns in transaction reports for this form.

→ Full reference: Where Custom Fields Live