A field ID — also called its code or symbolic identifier — is the name by which Bitrix24 recognizes a field in robots, business processes, the REST API and webhooks. System fields have fixed, readable codes — TITLE, OPPORTUNITY; custom fields get a code of the form UF_CRM_ followed by a number. This article covers where to find a field's code, why the same field is written differently in different APIs, and how to use codes in automation.
What is a field ID and how does it differ from the name?
Every field has two names. The name — "Amount", "Source" — is what users see; it can be changed at any moment with no effect on how the system runs. The code — OPPORTUNITY, SOURCE_ID — is the service identifier: robots, business processes, API requests and document templates find the field by it. The code is fixed when the field is created and never changes afterward. Hence the practical rule: in automation, rely on the code, not the name. Renaming a field breaks everything tied to the name text and touches nothing tied to the code — which is why integrations and processes built on codes survive any cosmetic edit of the card.
How do I find a field ID in the CRM settings?
The shortest path is the field settings: open CRM → Settings, pick the entity and the field you need — the code is shown in the field's card. System codes are meaningful: TITLE — title, OPPORTUNITY — amount, ASSIGNED_BY_ID — responsible person, COMMENTS — comment. Custom fields get an automatic code of the form UF_CRM_ plus a long number — you cannot set it by hand when creating the field through the interface, so an "unreadable" code is normal. In tasks, custom fields carry the UF_ prefix; in smart processes, codes are built on the same principle. If a field was created long ago and nobody remembers why, the code helps you find every place it is used — from business processes to webhooks.
How do I get the full list of fields through the API?
When there are dozens of fields, it is easier to request the whole list at once: REST methods of the form crm.deal.fields and crm.contact.fields (or the universal crm.item.fields) return JSON with all of an entity's fields — the code, type and name of each. An inbound webhook with CRM permissions is enough: paste the method URL into the browser and get the full field reference for your portal. The same trick solves the reverse task — finding a code by name when the CRM settings aren't at hand. The field list also helps when substituting values into business process variables: before building a process, it is worth writing out the codes of all the fields it reads and writes.
Why are TITLE and title the same field?
Bitrix24 has two generations of REST API, and codes are written differently in each. The old methods (crm.deal.update) and the workflow designer use upper case: TITLE, OPPORTUNITY, UF_CRM_…. The universal API crm.item.* uses camelCase: title, opportunity, assignedById. It is the same field in two spellings, and confusing them is a common cause of the "the robot ran but the value wasn't written" situation. The rule: check the code format in the documentation for the specific method or in the robot's hint. For example, the Update deal by ID robot works through the universal API and accepts JSON in camelCase: {"title":"New deal","stageId":"C1:WON","opportunity":50000}.
How do I use field IDs in robots?
Three typical operations. Read a value by code — the Get field value from a related entity robot: the entity type, its ID and the field code (TITLE, ASSIGNED_BY_ID or UF_CRM_…) — and out comes the value plus a "found" flag (Y/N). Write several fields at once — Update deal by ID: the deal ID and JSON whose keys are those very field codes. Parse an external system's response — Extract a value from JSON by path: it pulls a value by a dot path (for example, data.user.email) from the JSON returned by a webhook or an external service and returns it as a string plus a "path found" flag (Y/N). In all three cases, field codes are the common language between the CRM, the process and external systems.
Bottom line
A field code is a permanent service identifier: system codes are readable (TITLE, OPPORTUNITY), custom ones are generated with the UF_CRM_ prefix. Find codes in the CRM field settings or via the *.fields methods, and rely on them alone in automation. Robots for reading and writing fields by code are in the Roboteka catalog; if the one you need is missing — describe the task, we build the robot for free.