Custom fields
Extend the customer record with your business data — types, visibility, use in health and playbooks.
Custom fields let you capture the information your business needs that isn't in the standard set (ARR, domain, owner, etc.).
Where to create them
Admin → Custom fields → New field
Up to 100 fields per workspace (Starter plan), 200 (Growth), unlimited (Scale+).
Field types
| Type | What for | Example |
|---|---|---|
| TEXT | Free text, up to 500 chars | "Champion notes", "ICP fit score (text)" |
| NUMBER | Integers or decimals | "Employees", "NPS score", "Months to value" |
| DATE | ISO 8601 date | "Kickoff date", "First value date", "Next QBR" |
| BOOLEAN | True/false | "Is strategic", "MSA signed", "Sandbox active" |
| DROPDOWN | Value from a predefined list | "Tier: Platinum/Gold/Silver", "Industry", "Segment" |
| URL | Validated link | "Slack channel", "Notion workspace", "Status page" |
| CURRENCY | Amount with currency | "ACV target", "Expected expansion USD" |
How to pick the type
Rule of thumb: use DROPDOWN whenever possible. Standardized values are the only way to filter, group, and use in playbooks.
- "Industry" as free text? You'll end up with "Fintech", "fintech", "Fin-Tech", "FinTech"… impossible to group.
- "Industry" as DROPDOWN? 10 clean values, instant dashboard.
If you don't know the values yet, create the field as TEXT and convert it later (LealUp offers migration with suggested values).
Configuring a field
When creating, you define:
- Internal key — snake_case, not changeable after (e.g.,
tier,acv_target). - Visible label — what users see (e.g., "Tier", "ACV Target USD").
- Type — TEXT, NUMBER, etc.
- Required —
true/false. If true, new customers can't be saved without this field. - Options (DROPDOWN only) — list of values, ordered.
- Display order — where it appears on the record.
- Visibility by role — who sees it and who edits it.
Visibility and per-role permissions
Each field has a visibility matrix:
| Role | View | Edit |
|---|---|---|
| admin | ✅ | ✅ |
| director | configurable | configurable |
| csm | configurable | configurable |
| viewer | configurable | ❌ |
Typical cases:
- "ACV Target USD" — admin + director see and edit. CSM sees but doesn't edit. Viewer doesn't see it.
- "Champion notes" — everyone working the account (admin, director, csm) edits. Viewer sees it.
- "MSA signed" — only admin edits (it's legal). Everyone sees it.
Common fields in LATAM B2B SaaS
If you're just starting, consider these:
Basic segmentation
segment(DROPDOWN) — Enterprise / Mid-Market / SMB / Startup.industry(DROPDOWN) — Fintech / Healthtech / Retail / Edtech / Logistics / Other.country(DROPDOWN) — Chile / Colombia / Mexico / Brazil / Argentina / Peru / USA / Other.employees(NUMBER) — company size.
Commercial
tier(DROPDOWN) — Platinum / Gold / Silver / Bronze.acv_target_usd(CURRENCY) — how much we should close with them.renewal_currency(DROPDOWN) — USD / BRL / MXN / CLP.payment_terms(DROPDOWN) — Monthly / Quarterly / Annual.
Health
kickoff_date(DATE) — for onboarding.first_value_date(DATE) — when they reached value.sandbox_active(BOOLEAN) — technical indicator.msa_signed(BOOLEAN) — legal.
Relational
slack_channel(URL) — shared channel.notion_workspace(URL) — internal notes.exec_sponsor_internal(TEXT) — name of your exec sponsoring the account.
Use fields in playbooks
A custom field can be a trigger condition in a playbook. Examples:
- Playbook "Enterprise At-Risk" → trigger:
health < 60 AND segment == "Enterprise". - Playbook "QBR Platinum" → trigger:
next_qbr <= today + 14 AND tier == "Platinum". - Playbook "Onboarding Fintech" → trigger:
created_at <= today - 7 AND industry == "Fintech".
See Playbooks and tasks to create one.
Use fields in health
You can create a custom dimension of the health score based on fields. E.g.:
dimension "Commercial fit" =
IF tier == "Platinum" THEN 100
ELSE IF tier == "Gold" THEN 80
ELSE IF tier == "Silver" THEN 60
ELSE 40See Health model → Custom dimensions.
Use fields in segments
Segments are populated by rules over fields:
- Rule:
industry == "Fintech" AND country IN ("Chile","Argentina","Colombia"). - Result: all matching customers land in the "Fintech Southern Cone" segment.
Segments update in real time — if you change a customer's industry, they get reassigned.
Bulk update
Admin → Custom fields → [field] → Bulk update
Lets you:
- Set a value for a set of customers (by segment or CSV).
- Migrate values — e.g., consolidate "Finance" and "Fintech" into the single value "Fintech".
- Clear the field — remove the value from a set.
All operations go to the audit log and can be reverted within 24h.
Validation
- TEXT — max 500 chars, no HTML.
- NUMBER — configurable range (min/max).
- DATE — configurable range (no future, no past, between dates).
- DROPDOWN — only values from the list.
- URL — validated as HTTPS and that it responds 200.
- CURRENCY — fixed or per-record configurable currency.
If validation fails, the API returns 422 Unprocessable Entity with details.
Deleting fields
Deleting a field is destructive — you lose all historical values. LealUp requires:
- Double confirmation.
- Prior export of the field (offered automatically).
- Stays in "soft-delete" for 30 days, recoverable.
After 30 days, permanent purge.
Best practices
- Less is more — 15–20 well-designed fields beat 80 inconsistent ones.
- Review every 6 months — which fields no one uses, which need to be created.
- Short names — "ACV" > "Annual Contract Value Target USD".
- Dropdowns with <10 options — if you have 40 values, rethink whether it's really a DROPDOWN.
- Don't duplicate standard data — don't create "customer_name" when a name field already exists.
- Document internally — what each field means, who fills it, when. A Notion with the glossary saves you.