Can I Collect Additional Data on the Registration Form?
Answer
Yes, you can defined "custom registration fields" in the AdminCP to collect additional data on the registration form. The software supports up to 32 sma...
Where to Learn More
- FAQ — frequently asked questions about APG vNext
- Knowledge Base — in-depth articles and tutorials
- Installation Guide — getting started step by step
- Support Forum — ask the community
- Features Overview — what APG vNext can do
Collecting Additional Data on the APG vNext Registration Form
Yes — APG vNext supports fully customisable registration forms with additional fields beyond the defaults (username, email, password). You can add text inputs, dropdowns, checkboxes, and multi-line text areas to capture information such as company name, job title, how the member heard about the community, or agreement to specific terms. Custom field data is stored in member profiles and queryable via SQL.
Adding Custom Registration Fields
- Admin Panel → Settings → Registration → Custom Fields
- Click Add Field
- Configure: Field Type, Label, Placeholder, Required (yes/no), Visible to other members (yes/no)
- Set field order using drag-and-drop
- Save — the field appears on the registration form immediately
Available Field Types
- Text — single-line free text (max 500 chars)
- Textarea — multi-line text (max 2000 chars)
- Dropdown — predefined options list
- Checkbox — yes/no agreement or opt-in
- URL — website link with format validation
- Date — date picker (useful for birthday)
Accessing Custom Field Data in SQL
-- Retrieve custom registration field values for all members:
SELECT m.UserName, m.Email,
f.FieldName,
v.FieldValue
FROM apg_Members m
JOIN apg_MemberFieldValues v ON v.MemberID = m.MemberID
JOIN apg_RegistrationFields f ON f.FieldID = v.FieldID
ORDER BY m.UserName, f.FieldOrder;
Using Custom Fields for Conditional Approval
<!-- Auto-approve members who select "Employee" from Company Type dropdown -->
<add key="APG.Registration.AutoApprove.FieldID" value="3" />
<add key="APG.Registration.AutoApprove.FieldValue" value="Employee" />
Privacy and GDPR Considerations for Custom Registration Fields
Every custom field you add to the registration form collects personal data. Under GDPR and similar regulations, you must have a lawful basis for collecting each piece of information and must be transparent about how it will be used. Best practices for custom registration fields:
- Only collect data you actually use — each unnecessary field increases GDPR exposure
- If a field is optional, make it visibly optional (don't mark everything as required)
- Add a brief helper text below each field explaining why you collect it
- Include all collected field names in your privacy policy
- Support right-to-erasure: custom field data must be deleted when a member deletes their account
<!-- Enable GDPR data erasure for custom fields on account deletion -->
<add key="APG.GDPR.EraseCustomFieldsOnDelete" value="true" />
<!-- Custom field erasure is immediate and irreversible -->
<!-- Soft-delete members by anonymising, not deleting, the member record -->
<add key="APG.Members.DeleteMode" value="Anonymise" />
Exporting Custom Registration Field Data
Custom field data can be exported for CRM integration or analytics. APG vNext supports CSV export from Admin Panel → Users → Export Members, which includes all custom field columns in the export file. For automated integrations, use the member API:
// Fetch all members with custom field data via API:
const res = await fetch('/api/v1/members?include=customFields&limit=500&offset=0',
{ headers: { 'X-APG-ApiKey': 'your-api-key' } }
);
const data = await res.json();
data.members.forEach(m => {
const company = m.customFields?.find(f => f.name === 'Company')?.value;
const jobTitle = m.customFields?.find(f => f.name === 'JobTitle')?.value;
// Send to CRM: crmIntegration.upsert(m.email, company, jobTitle);
});
Validating Custom Registration Field Inputs
Custom registration fields support both client-side (JavaScript) and server-side validation. Configure validation rules in Admin Panel → Settings → Registration → Custom Fields → [Field Name] → Validation:
<!-- Available validation options per field (stored in apg_RegistrationFields) -->
MinLength: Minimum character count
MaxLength: Maximum character count
Regex: Custom pattern (e.g., ^[A-Z]{2}\d{4}$ for a staff ID)
AllowedValues: Pipe-separated whitelist (e.g., Engineering|Marketing|Sales)
Required: true/false
Regex Validation Example for Employee ID Field
-- Field: Employee ID
-- Regex: ^[A-Z]{2}\d{4}$ (two uppercase letters + four digits, e.g., ENG1234)
-- Error message: "Please enter a valid employee ID (e.g., ENG1234)"
-- Store validation config:
UPDATE apg_RegistrationFields
SET ValidationRegex = '^[A-Z]{2}[0-9]{4}$',
ValidationError = 'Please enter a valid employee ID (format: ENG1234)'
WHERE FieldName = 'EmployeeID';
Displaying Custom Fields in Member Profiles
By default, custom registration fields are visible on the member's public profile if the administrator marks them as "public" during field creation. Private fields (e.g., internal company details, approval notes) are only visible in the admin panel. This allows you to collect data for administrative purposes without exposing it to other community members:
<!-- Set field visibility via Admin Panel → Custom Fields → [Field] → Visible to Members -->
-- Or directly in SQL:
UPDATE apg_RegistrationFields
SET IsPublic = 1 -- 1 = visible on member profile, 0 = admin-only
WHERE FieldName = 'Location';
Related Resources
Validating Custom Registration Field Inputs
Custom registration fields support both client-side (JavaScript) and server-side validation. Configure validation rules in Admin Panel → Settings → Registration → Custom Fields → [Field Name] → Validation:
<!-- Available validation options per field (stored in apg_RegistrationFields) -->
MinLength: Minimum character count
MaxLength: Maximum character count
Regex: Custom pattern (e.g., ^[A-Z]{2}\d{4}$ for a staff ID)
AllowedValues: Pipe-separated whitelist (e.g., Engineering|Marketing|Sales)
Required: true/false
Regex Validation Example for Employee ID Field
-- Field: Employee ID
-- Regex: ^[A-Z]{2}\d{4}$ (two uppercase letters + four digits, e.g., ENG1234)
-- Error message: "Please enter a valid employee ID (e.g., ENG1234)"
-- Store validation config:
UPDATE apg_RegistrationFields
SET ValidationRegex = '^[A-Z]{2}[0-9]{4}$',
ValidationError = 'Please enter a valid employee ID (format: ENG1234)'
WHERE FieldName = 'EmployeeID';
Displaying Custom Fields in Member Profiles
By default, custom registration fields are visible on the member's public profile if the administrator marks them as "public" during field creation. Private fields (e.g., internal company details, approval notes) are only visible in the admin panel. This allows you to collect data for administrative purposes without exposing it to other community members:
<!-- Set field visibility via Admin Panel → Custom Fields → [Field] → Visible to Members -->
-- Or directly in SQL:
UPDATE apg_RegistrationFields
SET IsPublic = 1 -- 1 = visible on member profile, 0 = admin-only
WHERE FieldName = 'Location';
Looking for more help? Browse the support forum or check the Knowledge Base.