User guide › Formulas & automations
Which one do I want?
| You want to… | Use |
|---|---|
| Work a value out from other fields | A formula field |
| Show, hide, require or lock a field depending on the record | A conditional rule |
| Do something when a record changes — notify, create, call out | An automation flow |
| Require a human to sign off before something proceeds | An approval |
All four share the same expression language, so what you learn writing a formula applies to rule conditions, permission conditions and flow branches.
Formula fields
A formula field calculates itself from the other fields on the record. It's read-only, it's always current, and it can never fall out of step the way a manually-maintained total does.
Add one like any other field — pick the Formula type and write the expression. Typical uses:
Quantity * UnitPrice— a line total.ROUND(Subtotal * 0.2, 2)— tax at 20%.DAYS_BETWEEN(TODAY(), DueDate)— days remaining.IF(Balance > 0, "Unpaid", "Paid")— a derived status.CONCAT(FirstName, " ", LastName)— a display name.
What you can call
| Group | Functions |
|---|---|
| Maths | SUM AVG MIN MAX COUNT ABS ROUND FLOOR CEIL MOD POW SQRT RANDOM |
| Logic | IF AND OR NOT COALESCE ISBLANK |
| Text | CONCAT UPPER LOWER TRIM LENGTH SUBSTRING REPLACE SPLIT JOIN CONTAINS STARTSWITH ENDSWITH INDEXOF |
| Dates | TODAY NOW YEAR MONTH DAY HOUR MINUTE WEEKDAY ADD_DAYS ADD_MONTHS ADD_YEARS DAYS_BETWEEN MONTHS_BETWEEN IS_BEFORE IS_AFTER IS_SAME_DAY FORMAT_DATE |
| Currency | CONVERT BASE_CURRENCY |
| Context | CURRENT_USER RECORD_ID ENTITY_ID |
| Conversion | AS_NUMBER AS_STRING AS_DATE AS_BOOL |
Wrap anything that might be empty in COALESCE —
COALESCE(Discount, 0) — so one blank field doesn't turn a whole
calculation blank.
Conditional rules
Conditional rules change the form based on the record. A rule is a condition plus what to do when it's true:
- Show or hide a field — "Reason for discount" only once a discount exists.
- Require a field — a PO number becomes mandatory over a threshold.
- Lock a field — the amount freezes once the invoice is paid.
This is what keeps a form with sixty possible fields showing only the eight that matter right now. It's usually the highest-value thing you can do for the people entering data.
Automation flows
A flow does something when something happens. Flows are built visually — a trigger, then a series of steps, with branches where the path depends on the record.
Triggers
- A record is created.
- A record is updated — optionally only when specific fields change.
- A schedule fires — nightly, weekly, monthly.
- Something arrives from outside — a form submission, an inbound webhook.
Actions
- Send an email, SMS or chat message from a template.
- Create or update a record, here or in another entity.
- Notify a person, role or team.
- Start an approval.
- Call an external system via webhook.
A flow that updates a record can trigger a flow that watches for updates. Scope triggers to the specific fields you care about, and check the run history after enabling anything that writes records.
When a flow misbehaves
Every run is recorded — what triggered it, which steps ran, what each returned and where it stopped. Start there rather than guessing: it will usually show either a condition that didn't match or a step that errored on a missing value.
Approvals
An approval pauses a record until a person decides. Discounts over a limit, expenses, leave requests, anything with a signature at the end of it.
Approvals can start automatically when a watched field changes — moving a deal to "Approved" can require someone else's sign-off rather than being a self-service status change. Until the approval clears, the gated change doesn't take effect, and approvers get a notification with a link to what they're approving.
Approval state is maintained by the system. Don't try to drive it from your own fields or flows — set up the approval and let it manage the record.
Other scheduled work
Two more things run on a timer and are worth knowing about:
- Reminders and SLAs — deadlines with escalation when a record sits too long. The dashboard widget showing what's breached is driven by these.
- Scheduled reports — a saved report emailed to a list on a cadence. See Dashboards & reports.
Build it in this order
- Formulas firstThey're safe, instant and often remove the need for anything more complicated.
- Then conditional rulesSimplify the form before you automate around it.
- Then flows, one at a timeEnable one, watch its runs, then build the next.
- Approvals lastOnce the process is settled — they're the hardest thing to change while people are relying on it.