create_field
Add a field to a form. Types: text, textarea, integer, float, date, datetime, email, phone, url, select, checkbox, radio, file, image, location, autoincrement, yes_no, rel, formula, linked_column, linked_records, subform, map, action, divider, page_break, note, signature, country, language, states, time_zone, record_owners, matrix. A type's full parameters — get_field_types. ⚠️ For select/checkbox/radio ALWAYS pass choices in the SAME call — without them the field is not created.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"app_id": "<app_id>",
"entity_id": "<entity_id>",
"name": "<name>",
"field_type": "<field_type>"
},
"name": "create_field"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ampm | No | true — 12-hour format (AM/PM) for time/datetime | |
| desc | No | A tooltip hint for the person filling in the form | |
| func | No | Function for formula_type=function: 0=MIN, 1=MAX, 2=ROUND_UP, 3=ROUND_DOWN, 4=Ruby script | |
| icon | No | action field: the icon's FontAwesome class | |
| name | Yes | Field name | |
| rich | No | true — a text editor (for field_type=textarea) | |
| step | No | Step of the autoincrement (default 1) | |
| field | No | Array of field IDs or constants ['Constant', 'text'] for formula_type=formula | |
| app_id | Yes | Project ID | |
| column | No | REQUIRED for linked_column: the id of the field of the LINKED table that this column shows — «show the activity's description in the registration form» is a linked_column on Registrations with column = the id of Activities' Description (get_form_fields of that table lists the ids). The two tables must be linked already. Written here, beside settings — not inside settings | |
| choices | No | REQUIRED for select/checkbox/radio: an array of options. A call WITHOUT choices is refused with an error — do not make it; pass the options at once (take them from the user's words or propose sensible ones). Example: ["New", "In progress", "Done"]. | |
| default | No | Default value (for select — one of the choices) | |
| visible | No | false — the field's column is not shown on the table's PUBLIC page (the page, a found record, one record's own page). Signed in, the owner still sees it in their own table and in the form. For a public page prefer update_public_page hide_columns: it takes the field out of the page's search too | |
| rel_type | No | Link type (default 2): belongs_to=2/6/8 (dropdown/radio/multi), has_one=3/5/9 (dropdown/radio/multi), many-to-many=1/4 (autocomplete/checkboxes) | |
| required | No | true — the field must be filled in | |
| settings | No | Any other setting of the field, as setting: value pairs in the product's own names — totals and averages under a column, barcode / QR code, an input mask, several files at once, a list's options side by side, pages of a long form, address help, edit in the table, how many fields share a row, a subform's rows (how many, the add link, hidden fields) and what the table shows of a subform or a list of linked records (one column or a small table of chosen columns, their order). Call get_field_types with field_type for the settings that fit one type. Example: {"show_db_total_row": true}. A setting that does not fit the field's type is refused by name. | |
| delimiter | No | Thousands separator: '' or ',' or '.' | |
| dependent | No | rel only: true — the list offers only the rows linked to what another field of the same form holds (Country → City, Stage → Check point); give depends_from_field_id with it. get_field_types with field_type rel says the shape | |
| entity_id | Yes | Form ID | |
| operation | No | Operators between the fields: +, -, *, / (one fewer than the number of fields) | |
| precision | No | Digits after the decimal point for float (default 2) | |
| separator | No | Decimal separator: '.' or ',' | |
| field_type | Yes | Field type. Call get_field_types for the full list with descriptions. | |
| icon_align | No | action: where the icon stands beside the caption — 1 left (default), 2 right | |
| operand_is | No | Operand type for formula_type=formula: numbers, decimal, text, days, hours, year. REQUIRED when formula_type=formula. | |
| start_from | No | Starting value of the autoincrement (default 1) | |
| text_align | No | Alignment in the cell: 1=left, 2=right, 3=center, 4=justify | |
| uniqueness | No | Check that the field's values are unique. | |
| action_fill | No | action field: 0=inline(default), 1=block | |
| action_size | No | action field: 0=small,1=medium(default),2=large | |
| action_type | No | action field: 0=link(default), 1=button | |
| entries_num | No | Number of linked records for linked_records (default 5) | |
| func_fields | No | IDs of all fields used in func/script_body. REQUIRED for formula_type=function — without it the formula is not recalculated. | |
| is_currency | No | Show as currency | |
| matrix_rows | No | Matrix rows (field_type=matrix) | |
| script_body | No | Ruby code for func=4. Rules: the result goes into the variable 'a', the last line is 'a'; field names in single quotes 'field_name'.to_f; def/while/puts/return/require are forbidden; aggregating subforms through .to_f is FORBIDDEN (use linked_column for that). | |
| validations | No | The field's checks. required: true is the shorter way to make it required. They check the text typed into the add or edit form, in the browser: none reads a date's weekday, a holiday, opening hours or other records (see the instruction's VALIDATIONS). | |
| action_color | No | action field: 0=primary,2=success,3=danger,6=light(default) | |
| action_tasks | No | Tasks of an Action field (field_type=action). task_type: 0=email, 1=sms, 2=update_record, 3=payment, 4=webhook, 5=open_form_or_url, 6=telegram/whatsapp. The full specification — get_field_types. | |
| default_type | No | 0 = fixed, 1 = current date/time (date/datetime), 2 = current user (record_owners) | |
| disable_past | No | Forbid choosing past dates (for date/datetime/dob) | |
| formula_type | No | Formula type: formula (arithmetic/concatenation), function (built-in functions + Ruby), link (clickable link), total (sum), average (average). REQUIRED for field_type=formula. | |
| currency_unit | No | Currency symbol: '$', '€', '₴' and so on | |
| rel_entity_id | No | ID of the form the rel field links to (required for rel) | |
| time_settings | No | time field: how the time is picked. clock_system "12h" | "24h"; control_type "dropdown" | "slider"; units: { hour | minute | second | millisec | microsec: { show: true|false, min, max, step, grid } } — e.g. {"units": {"minute": {"step": 15}, "second": {"show": false}}}. Only what is passed changes | |
| disable_future | No | Forbid choosing future dates (for date/datetime/dob) | |
| matrix_columns | No | Matrix columns (field_type=matrix) | |
| vertical_align | No | Vertical alignment: 1=top, 2=middle, 3=bottom | |
| formula_link_to | No | formula_type=link: on_table or table_form | |
| truncates_after | No | Cut the text in the table after N characters (default 1000) | |
| allow_new_values | No | For select only. true — users can add new options right from the record form, without editing the field. Default false. | |
| display_as_image | No | true — show the URL as a picture (field_type=url only, for photos) | |
| hide_column_name | No | action/formula: hide the column's name in the table | |
| linked_entity_id | No | The id of the other table: for linked_records / linked_records_count, and for a subform the table whose rows are filled in inside this form. A linked_column names its table by its column | |
| rel_show_field_id | No | ID of the field to show in the rel dropdown (optional) | |
| total_table_column | No | Not for a sum over the rows linked to this record — that is a linked_records field and a linked_column over it (937). formula_type total is refused by this tool. | |
| action_done_message | No | action field: the message after the task is done | |
| formula_link_column | No | formula_type=link: ID of the field with the table/form name | |
| formula_link_target | No | formula_type=link: _blank, _self, _parent, _top | |
| action_display_rules | No | Rules for when the Action button is shown. For all records — do not pass this array. | |
| average_table_column | No | Not for an average over the rows linked to this record: their sum (linked_records + linked_column) divided by a linked_records_count. formula_type average is refused by this tool. | |
| action_name_column_id | No | action: the id of the field of this form whose value is the button's caption — with action_name_from_column true | |
| add_percent_to_number | No | Add a % sign after the number | |
| depends_from_field_id | No | rel only: the field of the same form (name or id) whose pick narrows this list — itself a link to a table that the linked table links to as well | |
| add_to_actions_control | No | action: add to the bulk actions menu | |
| total_table_ref_column | No | Not for a sum over the rows linked to this record (see total_table_column). | |
| action_name_from_column | No | action: the button's caption is taken from a field of the record (action_name_column_id) instead of the field's name | |
| average_table_ref_column | No | formula_type average: the link field in that other table that points at this form, by id or name; may be left out when only one table links here | |
| linked_records_count_form_id | No | ID of the form to count (required for field_type=linked_records_count) | |
| not_add_space_between_operands | No | 1 = no space between the operands (for concatenation without spaces) |