SymbifoxUser guide Français

Part 7 · Platform, hosting and artificial intelligence

Forge (no-code customization)

Add fields, stat buttons, default values and shared filters to Symbifox forms, without writing any code.

Symbifox 18.0 (September 2026 catalogue) · Modules: Forge · Revised 2026-09-12

Forge adds the fields your line of work needs to Symbifox forms: a member number on a contact, a renewal date, an internal status on a file. You do everything by pointing and clicking, with no module to write and no restart. The application is meant for the person who administers Symbifox and knows its screens well, not for the whole team. Your additions stay in place when Symbifox is updated.

Overview#

Forge is deliberately narrow: it adds fields to existing forms, and nothing else. It does not create new record types, design reports or replace custom development.

Five objects make up the application.

  • Custom field: a field added to an existing record type. Text, number, amount, checkbox, date, selection list, link to another record, attachment or image.
  • View injection: the place where the field appears. A field can show in the form, in the list, on the kanban card and in the search filters.
  • Stat button: one of the shortcut buttons at the top of a form, which shows a count and opens the records counted.
  • Default value: the value a field takes when a record is created, for one person or for the whole company.
  • Shared filter: a saved search offered to the whole team rather than to its author alone.

The Add custom field screen is the application's entry point.

Add custom field screen, with the model, field label, field type and the checkboxes for display in each view
Add custom field

What sets the approach apart: Forge keeps a description of every addition, then rebuilds what is needed if a Symbifox update wipes out the underlying setup. Data entered in a custom field is never touched.

Configuration#

Access and permissions#

Two groups exist, and the Forge entry in the main menu appears only to the first.

Group What it opens
Forge: Administrator Create fields, stat buttons and injections on ordinary record types.
Forge: Bypass model lock Lift the lock and work on protected record types. Reserve it for system administration.

Some record types are protected by default: user accounts and groups, settings, attachments, actions, security rules, accounting, payments and internal messaging. Forge refuses to touch them until the second group is granted.

Settings#

The application has no settings page. Everything happens in its own screens.

Base data#

There is nothing to create in advance. Do know which form you want to work on, and which existing field your addition should appear next to: the creation screen asks for this anchor point.

Getting started#

This walkthrough adds a “Service level” field to the contact form of the Boréal demo, and shows it in the list.

  1. Go to ForgeAdd custom field.
  2. In Model, select “Contact”.
  3. In Field label, enter “Service level”. The technical name fills itself in.
  4. In Field Type, select Selection, then enter one option per line in Selection values.
  5. Leave Show in form view checked and enter the anchor field in Place after field.
  6. Check Show in list view and Show in search filters.
  7. Select Save.

The field is created, the views are adjusted, and the creation record is filed under ForgeCustom fields. Open any contact: the field is there, ready to use.

Common tasks#

Add a custom field#

This is the application's main action, and it always follows the same pattern.

  1. Go to ForgeAdd custom field.
  2. Select the Model, that is, the record type to extend.
  3. Enter the Field label and select the Field Type.
  4. Optional: enter text in Help text shown to users, which appears as a tooltip.
  5. Check Required if the field must be filled in.
  6. Choose where the field appears with Show in form view, Show in list view, Show in kanban card and Show in search filters.
  7. Select Save.

The field appears immediately on the chosen screens, for everyone who has access to them. Discard abandons the creation.

Add a field that reads another record#

A field can display information that lives elsewhere, without entering it twice: the customer's country on an order, for example.

  1. Go to ForgeAdd custom field.
  2. Select the Model and enter the Field label.
  3. Check Computed from another field.
  4. In Related path, enter the path to the information you want, separating each step with a period.
  5. Select Save.

The field is created read-only: it follows the source record and cannot be edited. Paths that lead to a password, a token or another secret are refused, as are paths that go through a protected record type.

Make a field conditional#

A field can appear, or become required, only in certain situations.

  1. Go to ForgeCustom fields.
  2. Open the field.
  3. Enter the condition in Invisible when, Required when or Readonly when, as a simple comparison.
  4. Save.

The condition applies everywhere Forge has placed the field. Accepted expressions stay basic: a comparison between a field and a value, with no function calls and no complex constructions.

Add a stat button#

A stat button leads from a record to the records linked to it, with their number displayed.

  1. Go to ForgeAdd smart button.
  2. In Source model, select the record type that will carry the button.
  3. In Target model, select the record type to count.
  4. In Relation field on target, select the field on the counted record that points to the carrying record.
  5. Enter the Label shown under the count, then select the Icon and the Color.
  6. Optional: narrow the count with Extra domain (optional).
  7. Select Save.

The button appears at the top of the chosen form. When Open On Click is checked, selecting it opens the list of counted records.

Screen for adding a stat button, with the source model, target model, relation field, label and colour
The stat button screen

Set a default value#

A default value saves you from entering the same thing every time you create a record.

  1. Go to ForgeDefault values.
  2. Select New.
  3. Select the target Field.
  4. Enter the Default Value (JSON format).
  5. Select the User so that the default applies only to that person, or leave it empty for the whole company.
  6. Save.

The value applies the next time a record is created. The demo has nine defaults, including the language of new contacts and the accounting accounts of new product categories.

Share a filter with the team#

A useful search is worth offering to everyone rather than keeping it for its author.

  1. On the relevant list, build the search, then save it as a favourite filter.
  2. Go to ForgeShared filters.
  3. Open the filter.
  4. Delete the value in User.
  5. Save.

The filter now appears in the whole team's favourites, on that record type. The demo has twelve, on invoices, blog posts, applications and tasks.

List of the demo's shared filters, with the filter name, model, user and linked action
Shared filters

Remove a field from the screen#

A field that is no longer useful can be removed without losing what it holds.

  1. Go to ForgeCustom fields.
  2. Open the field.
  3. Clear Active.
  4. Save.

The field disappears from forms, lists and filters. The values entered stay in the database and reappear if you reactivate it.

The menus, one by one#

The application bar shows Forge, Add custom field, Add smart button and Custom fields; the other entries are under the plus sign at the end of the bar. The Forge entry itself is a grouping: it opens no screen.

  • ForgeAdd custom field: the screen for creating a field, described in Overview. It opens empty every time: it is an entry form, not a list.
  • ForgeAdd smart button: the screen for creating a stat button.
  • ForgeCustom fields: the list of fields created, six on the demo, with their technical names. A field's record gives its label, record type, data type, list options, display conditions and the view injections that result from it.
List of the demo's six custom fields, with their technical names
Custom fields
  • ForgeSmart buttons: the stat buttons created. There are none on the demo, so the screen shows a reminder of what a stat button is.
  • ForgeView injections: the list of view adjustments made by Forge, one per place where a field or button appears. You consult them to understand where an addition shows, rarely to change them.
  • ForgeDefault values: the prefilled values, with the columns Field, Default Value (JSON format), User and Company.
List of the demo's default values, with the target field, value, user and company
Default values
  • ForgeShared filters: the saved searches, with the columns Filter Name, Model, User, Default Filter and Action.

Reference#

Fields of the Add custom field screen#

Field Description Required or default
Model Record type to extend, for example a contact or a task. Required
Field label Label shown on screen. Required
Technical name Internal name, derived from the label. Filled in automatically
Field Type Text, long text, integer, decimal, amount, checkbox, date, date and time, selection list, link to a record, attachment or image. Single-line text
Required Makes the field mandatory when entering data. Cleared
Help text shown to users Help text shown as a tooltip. Empty
Selection values One option per line, for a selection list. Empty
Linked model Target record type, for a link to another record. Empty
Allowed reference models List of permitted record types, for a reference field. Empty
Computed from another field, Related path Reads information that lives on a linked record. Cleared
Show in form view, Place after field Display in the form, and anchor field. Checked
Show in list view, Show in kanban card, Show in search filters Display in the list, on the card and in the filters. Cleared

Fields of the stat button screen#

Field Description Required or default
Source model Record type whose form will carry the button. Required
Target model Record type whose records are counted. Required
Relation field on target Field, on the counted record, that points to the carrying record. Required
Label Text shown under the count. Required
Icon, Color The button's icon and colour. Suggested values
Extra domain (optional) Narrows the count, as simple conditions. Empty
Open On Click Opens the list of counted records when you select the button. Checked

Reports and exports#

The application produces no reports. The lists of fields, buttons, injections, default values and filters can be exported with ActionExport.

Automations#

  • An integrity check runs once a day: if the setup of a field or button has disappeared, for example after a module was reinstalled, it is rebuilt from the stored description. Data in the database is not touched.
  • The same check runs when the application is installed and at each of its updates.
  • The count shown by a stat button is calculated when the form opens, not stored: it is always up to date.
  • A field or button whose rebuild fails several times in a row carries a failure counter and a message explaining the last refusal.

Public pages and portal#

The application has no public page and no portal page. A single internal address, reserved for signed-in users, calculates the count shown by a stat button.

Modules that extend this application#

No satellite module extends this application. Forge installs on its own and works as soon as it is installed. A panel of getting-started steps sits at the top of its main screen, and you close it once your first customizations are done.

Understanding#

Why your additions survive updates. A customization hacked directly into the views is lost at the first update. Forge keeps the description of each addition in its own records, independent of the technical setup. If an update wipes out that setup, the daily check rebuilds it exactly as it was. The database columns are never touched: only Symbifox's description of the field is rebuilt.

Why some record types are locked. Adding a field to user accounts, security rules, attachments or accounting can break mechanisms that everything else depends on. The lock is not a whim: it separates what a functional administrator can do alone from what needs someone who can measure the consequences.

Why no code is generated. Forge never generates a program from what you enter. A computed field only reads information on a linked record, a display condition is only a comparison, and a stat button relies on an action assembled from elements already checked. That is why the possibilities are limited: what is not offered is what would open the door to running arbitrary code.

What Forge does not do. It does not create new record types, only fields on existing ones. It designs neither reports nor pages. It does not rearrange a form by drag and drop. It does not add options to a selection list shipped with Symbifox, only to the lists it created itself. For those needs, you need a module written for the purpose.

Why a field is deactivated rather than deleted. Removing a field also removes what people entered in it. Deactivating it hides it from the screens but keeps the values, which leaves time to notice that someone missed it.

Troubleshooting#

Symptom Likely cause Fix
The Forge entry does not appear in the main menu. The account does not have the Forge administration group. Add the group on the user's record, in the general settings.
Creation refuses the chosen record type. The type is protected by default. Have the lock bypass group granted, or give up on that record type.
The new field does not appear on the form. Show in form view is cleared, or the anchor field does not exist on that view. Open the field, fix the anchor, then reload the page.
A read path is refused. It leads to a sensitive field or goes through a protected record type. Choose other information, or use a field entered by hand.
The stat button always shows zero. The chosen relation field does not point to the carrying record, or the restriction is too narrow. Open the button and check the relation field and the restriction.
A field disappeared after an update. The setup was wiped and the integrity check has not run yet. Wait for the next day's check, or run an update of the application again.
A filter stays invisible to the team. It still has a user. Delete the value in User on the filter's record.

See also#