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.
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