Skip to main content

Custom fields

A contact carries a fixed set of properties — name, email, tags, notes, and the CRM's own owner, lifecycle stage and company; a company its domain, address and industry; a deal its amount, stage and close date; a lead the person and their company as text. Custom fields add the properties your business describes each of them by: an annual revenue, a budget in euros, a tier, a renewal date, a VIP checkbox, a link to a profile.

A field is defined once for the whole organization, for one kind of record — see fields per record. It then appears on every record of that kind, as an optional column on that kind's list, and on the REST API; a contact field is also a destination a form field can save into. Definitions are shared across every site in the organization, like the records themselves; the values a site records on a contact are that site's own view of the person.

Plan availability

Custom fields are part of the CRM, included from Starter. On Free the Fields section is shown locked, with the rest of the CRM. See What each plan includes.

Define a field​

Open CRM → Fields, pick the tab for the record the field describes — Contacts, Companies, Deals or Leads — and choose New field.

  • Label — how the field reads everywhere it shows.
  • Key — derived from the label as you type (Annual revenue becomes annual_revenue); edit it to choose your own. A key starts with a letter and uses lowercase letters, digits and underscores, up to 40 characters. Values are stored under the key, so it cannot change once the field exists — a rename is a new field and a retirement of the old one.
  • Type — Text, Number, Date, Choice, Checkbox, Link or Currency. Every value is read by its type, so the type is fixed once the field exists.
  • Choices — for a Choice field, one per line. A stored value has to be one of them.
  • Currency — for a Currency field, the currency every amount in it is in: USD, EUR, GBP and the other currencies a deal's amount offers. It starts at USD and is fixed once the field exists — see currency fields.
  • Required on the … form — the record's page will not save the field empty. It does not make a website form field required; that is the Required? switch on the field's input in the Besigner.

Each tab is the console's list table: it pages, sorts by Field, Key or Type, filters by Type and Required from its Filters panel, and searches a field's name and key. It opens in the order fields appear on a record and in the list's columns, numbered under Order; the arrows on each row move a field up or down. The order is the record's, not a view of the list, so the arrows are live only while the list shows it — with a sort, a filter or a search in force they wait, and say Clear sorting and filters to reorder.

note

How many records carry a value under each field is not counted. That would read every record in the organization each time the page opened, so the list says so rather than showing a number it cannot keep true.

Fields per record​

Each tab of the Fields section is its own list: a field belongs to contacts, to companies, to deals or to leads, and never to more than one. Keys are unique within a tab, so a company field and a contact field may both be called region — they are two fields, each read by its own type.

RecordWhere its fields show
ContactsMore fields in the Properties card on a contact's page, optional columns and filters on the contacts list, the CSV import, a form field's destination, and custom on /v1/contacts.
CompaniesMore fields on a company's page and controls on its Edit form, optional columns on the companies list, the companies import and export, and custom on /v1/companies.
DealsMore fields in the Properties card on a deal's page and controls on its Edit form, optional columns on the deals table, and custom on /v1/deals.
LeadsMore fields in the Details card on a lead's page and in the New lead drawer, optional columns on the leads list, and custom on /v1/leads.

Only a contact field can be the destination of a website form field, because a submission is a fact about a person; the drawer on the other tabs says so. Company, deal and lead columns show values and are not filterable: the value lives in a map no index covers. A contact field is the exception — each site's record of the person carries a key for it that the list's query can ask — see Filters on the Contacts list.

A lead's values stay on the lead when it converts. A lead field and a contact field are two fields even when they share a key, so nothing is copied across; the converted lead is still on record and still shows what was written on it.

Fields defined before companies, deals and leads could carry them are contact fields, and need nothing done to them.

Where values show​

  • A contact's page carries its fields in the Properties card, under More fields after the built-in properties, with one control per field — a text box, a number box, a date picker, a choice list, a checkbox, a link box or an amount box with the currency beside it. The card's one Save, in its header, writes the profile and only the fields you changed; clearing a control clears the value. With no field defined, there is no More fields at all.
  • The contacts list offers one optional column per field. The columns show the value as it reads — a date as a day, a checkbox as Yes or No, a link as a link, an amount as money ("€1,250.00"). They do not sort; each is a field in the table's Filters panel — see Filters on the Contacts list.
  • A lead's page carries its fields in the Details card, under More fields after the profile and saved with it by the same Save in the card's header. The New lead drawer offers the same controls, so a lead can be entered complete. A converted lead's are read-only with the rest of the record. The leads list offers one optional column per field.
  • A company's page and a deal's list their fields under More fields, after the built-in properties; Edit changes them.
  • Exports and the API carry the values under their keys.

A value belongs to the site that recorded it. Two sites in one organization that both know a person each see their own values, never each other's.

Currency fields​

A Currency field holds an amount of money — a budget, a contract value, a price quoted — in the one currency the field was made with. Every value in the field is in that currency, so its column on a list reads as one currency throughout.

  • Typing an amount. The box takes the amount as you would write it — 1250.50, $1,250.50, 1,250 — with the currency shown beside it. Symbols, codes and thousands separators are ignored; more decimals than the currency has are rounded (19.995 USD is $20.00). A negative amount is allowed, for a discount or a credit.
  • How it reads. Everywhere a value shows — a record's page, a list column — it is formatted as money in your browser's locale.
  • How it is stored. As a whole number of the currency's smallest unit — cents for USD, yen for JPY — the way a deal's amount is. That is the number the REST API reads and writes under the field's key: send 125050 for $1,250.50, or send the amount as text ("1250.50") and it is read as dollars.
  • Filtering contacts. A contact currency field's filter asks equals an amount, typed as you would type it, or is not empty.
  • Import and export. A file carries the amount as a plain number in the field's currency — 1250.5 — and an import reads it back the same way. The Fields export lists each currency field's currency.

A field's currency cannot be changed once it exists, because its values are counts of that currency's smallest unit. To track a second currency, add a second field.

There is no organization-wide currency setting, so a new Currency field always starts at USD; pick another before you create it.

Save a form field into a custom field​

On a form's own page (Forms → the form), Saves to contact fields lists every field the published design declares, with a choice beside each. A field is listed by the Field name of the element a visitor answers with — an Input, Select, Radio Group, Checkbox or Rating (see Field types) — and several Checkboxes sharing one Field name are one field. Pick a custom field and every submission's answer to that form field is stored under it on the contact the submission creates or updates.

Answers arrive as text and are converted by the field's type:

Field typeWhat is stored
Text, LinkThe trimmed answer. A Link has to be an http(s) URL, or nothing is stored.
NumberThe number. An answer that is not one number is dropped rather than stored as text.
DateThe date, as an ISO 8601 stamp, whichever way the visitor typed it.
ChoiceThe answer, only when it is one of the field's choices exactly.
Checkboxtrue or false, from what a ticked or unticked box sends.
CurrencyThe amount, read in the field's currency — "1,250.50" or "$1,250.50". An answer that is not one amount is dropped.

An answer left blank writes nothing — a submission never clears a value you set by hand. A mapping onto a retired field writes nothing either.

Mappings are kept by field name across publishes: redrawing the form and publishing a new version does not lose them. An element whose Field name you change on the canvas is a new field and starts unmapped; a field removed takes its mapping with it.

The sender's name and email are recognized from the field name — see who a submission is from — and never need mapping.

Picklist values​

Some standard fields are picklists — a fixed set of choices, the way Salesforce's standard fields are. Each picklist's values are kept on the tab of the record it belongs to, below that tab's custom fields, under its own values card:

TabPicklists
LeadsLead source, Lead status
ContactsSalutation
CompaniesType, Industry, Rating, Ownership
DealsType, Contact role
TasksStatus, Priority, Type, Subject

Lead source is the one picklist several records share: a lead's and a contact's lead source, a company's Account source and a deal's lead source all hold its values. Every lead's page, the New lead drawer and every contact's page offer its values as a select, the leads and contacts lists filter by them — the leads list by a value's group too — and Reports counts leads by them.

Standard values come with every organization. Each picklist ships Salesforce's standard set — and, for Lead source, a value for each of Aglyn's own doors and outreach — marked Standard in the list. You can rename, reorder, regroup, deactivate or make a standard value the default, but you cannot delete one. Your own values sit beside them: add as many as you need, and delete them when you are done.

Lead source's standard values, by group:

GroupValues
InboundWeb, Phone inquiry, Email inquiry, Partner referral, Employee referral, External referral, Advertisement, Trade show, Webinar, Word of mouth, and Aglyn's own: Website form, Booking, Newsletter sign-up, Site member sign-up, Online purchase, Account sign-up
OutboundPurchased list, and Aglyn's own: Sequence, Email campaign
(no group)Other

The Companies tab keeps Type, Industry, Rating and Ownership, each with Salesforce's standard values — see the lists behind a company's choices. A company's Account source is a lead source value, so renaming or deleting a lead source moves the companies holding it too. Industry and Rating are leads' too: a lead's page, the New lead drawer, the leads import and /v1/leads offer and enforce the same values, the Leads list filters by them, a rename or delete moves the leads holding the value with the companies, and converting a lead hands its value to the company.

Meanings tie a picklist's values to what the platform does with them. Lead status has one per standard value — New, Nurturing, Working, Qualified, Unqualified — and the Means column shows each value's. A value you add picks its meaning when you add it (never Qualified, which only converting a lead sets), and deleting it moves its records to another value of the same meaning; it cannot clear them.

Groups sort a picklist's values under headings. Lead source groups each value as Inbound — the lead came to you — or Outbound — you went to them. The Group column sets a value's group, standard or your own; the selects list values under their group's heading, with values in no group last.

ActionWhat it does
Add valueAdds your own value at the end of the list, in the group you pick. A value the list already holds, in any capitalization, is refused.
Drag, or the arrowsReorders the list. The order is the order every select offers.
Sort A–ZPuts the whole list in alphabetical order.
GroupFiles the value under a group, or none. On Lead source, every lead holding the value moves with it — the Lead source direction filter on the leads list finds it in its new group.
RenameRenames the value, and every record holding it — for lead source, every lead, contact, company and deal — is updated to the new name in the same step, so a report grouped by the field follows the rename.
Make defaultNew records start with this value — in the New lead drawer, over the API, and from a CSV row that names none. On Lead status, the default is the label a lead of its meaning shows when it was given the meaning alone. Clear default removes it.
DeactivateTakes the value out of every select without touching the records that hold it. They show it as (inactive) and keep it until someone changes it. Activate brings it back.
Delete…Offered only on your own values. Removes the value for good: you pick another active value to move its records to, or clear it from them — on Lead status, another value of the same meaning, and never clear. To keep it on those records, deactivate it instead.

An organization that has never edited a picklist reads its standard values; your first change makes the list your own. A lead or contact holding a value that is neither standard nor in your list shows it as (not in the list) — add the value to keep offering it.

Lead source is enforced. A lead source typed into a CSV import or sent over /v1/leads must be one of the active values, matched without regard to case and stored as the list spells it. Anything else is refused, with the values the list allows named in the error — the import skips that row and says so, and warns before the file is sent. A lead or contact that already holds a value the list has since deactivated keeps it on every save.

When a lead converts, its lead source is handed to the contact, and to the deal the conversion opens.

Type is the deals' picklist, on the Deals tab under Type values: Salesforce's standard Existing Business and New Business, enforced the same way on the deal drawer, a deals import and /v1/deals. A deal's lead source is held to the Lead source list, and a rename or delete there moves the deals that hold the value too. See Type and lead source.

Contact role is the deals' second picklist, under Contact role values: the part a contact plays on a deal — Salesforce's standard Business User, Decision Maker, Economic Buyer, Economic Decision Maker, Evaluator, Executive Sponsor, Influencer, Technical Buyer and Other. Enforced on the deal page's Contact roles card and on /v1/deals; a rename or delete rewrites the role on every deal that holds it, and a delete with nothing to move to leaves those contacts on their deals with no role. See Contact roles.

Salutation is the Contacts tab's picklist, under Salutation values: Salesforce's standard Mr., Ms., Mrs., Dr. and Prof., in no group, beside any your organization adds. Every contact's page and the New contact drawer offer it as a select, and it is enforced the way lead source is: a salutation sent over /v1/contacts that the list does not hold is refused, naming the values allowed, and one in a contacts import is yours to map onto the list, add to it or leave blank. A rename renames it on every contact that holds it. Leads use the same list: a lead's salutation is offered, enforced and renamed the same way, and travels to the contact when the lead converts.

The Tasks tab​

A task has no custom fields, so the Tasks tab is its picklists alone: Status, Priority, Type and Subject, each with Salesforce's standard values (see Status, priority, type and subject). Status, Priority and Type are semantic: each value means one of the CRM's own states — a status is open or done, a type is a call, an email, a meeting or a to-do — shown in the Means column. A value you add names its meaning; a standard value's is fixed; and a value deleted with a replacement moves its tasks only to a value of the same meaning. Renaming a value renames it on every task that holds it, and changes nothing a reminder, a view, the digest or an automation reads, because those read the meaning.

Subject is suggestions under a task's free-text subject: renaming or deleting one changes no task.

Over the API​

The /v1/contacts, /v1/companies, /v1/deals and /v1/leads resources each carry custom, an object keyed by field key — {} on a record that has none, so a client can index it without a guard. Each resource is judged against the definitions of its own record: a company body is validated against the company fields, whatever a contact field of the same key holds.

  • POST and PATCH accept custom. Values are converted by type exactly as a form answer is. A currency field's value is a whole number of its currency's smallest unit (125050 is $1,250.50), and text is read as an amount ("1250.50"); a response carries the stored number.
  • A PATCH merges the keys it sends and keeps the rest; send null under a key to clear it.
  • A key that is not a field of that record, a field that is retired, or a value the type cannot hold is refused with 400 validation_failed and named in fields as custom.<key> — nothing is stored from that request.

Retire, restore and delete​

Retire takes a field off every record page, every column and every form mapping. Values already saved under it are kept and still export, and Restore brings the field back with them intact.

Delete is offered only on a retired field. It removes the definition for good; values saved under its key stay on the records that carry them, but nothing will show them again — and a new field created with the same key would read them as its own, which is why the key of a retired field still counts as taken when you create one on that tab.

Export your fields​

Export… at the top of the Fields section writes every custom field you defined as a file — its name, key, the record it describes, its type, a currency field's currency, its choices, whether it is required, its position and whether it is retired — through the export dialog: a record of your setup, to document it or to rebuild it elsewhere. Fields are defined here, so the file is never imported. Their values travel with each record's own export.

Recompute next activity​

Recompute next activity at the top of the Fields section rewrites every contact's, company's and deal's next activity from its open tasks — the figure every task write keeps, recomputed for the whole organization at once. Run it after importing records that existed before the figure did, or whenever a list's Next activity column looks stale; it is safe to run any time, and it reads every open task once. An organization holding more than twenty thousand open tasks is told only the first batch was read: the records those tasks name are still written, but nothing stale is cleared, since "nothing is scheduled against this record" cannot be said from a partial read.