Language: English
The On record added trigger starts an automation each time a new record is saved to a specific form. It fires once per record, after the record has been successfully saved, including records added through data entry, the mobile app, imports, and the API.
The trigger is configured with a single Form. Records added to other forms, including sub-forms of the selected form, do not fire the trigger. To react to sub-form records, select the sub-form itself as the trigger's form.
Imports
Imported records fire this trigger exactly as individually entered records do: an import of 500 records starts 500 runs, one per record. (This is a change from ActivityInfo 4.0, whose webhooks skipped imports — see From ActivityInfo 4.0 webhooks to automations.) Keep this in mind when an automation posts to an external system: the receiver must be prepared for a burst of one request per imported record.
Step data
Every trigger produces a single row of step data: the values that the later steps of the automation — the filter, email, and webhook steps — can reference in formulas and templates.
For this trigger, the row describes the newly added record:
| Column | Type | Description |
|---|---|---|
| one column per form field | the field's type | The value of each field of the new record. See below for how to reference fields. |
_id |
Text | The record ID of the new record. |
_lastEditTime |
Date and time | The time the record was added. |
_user.name |
Text | The name of the user who added the record. |
_user.email |
Text | The email address of the user who added the record. |
_user.id |
Text | The user ID of the user who added the record. |
_trigger.type |
Text | Always RECORD_ADDED for this trigger. |
_trigger.time |
Date and time | The time the event occurred. |
If the form is a sub-form, the row also includes a Parent column referencing the parent record, whose fields can be navigated in the same way as any reference field.
There is no _previous column for this trigger: a newly added record has no earlier state to compare against. Formulas referencing _previous are rejected by the editor when the trigger is On record added.
Referencing fields
Fields can be referenced by code, by label, or by field ID. We strongly recommend assigning short, stable codes to your fields and using them in automation formulas and templates: codes survive renaming the field's label, are easier to read than field IDs, and never need the [bracket] quoting that labels with spaces require.
| Reference | Example |
|---|---|
| By code (recommended) | NAME |
| By label | [Full Name] |
| By field ID | cgnp9n6msbq938m7 |
Values of each field type appear in step data as follows:
| Field type | Step data value | Formula example |
|---|---|---|
| Text, multi-line text, barcode | Text | NAME == "Amina Yusuf" |
| Serial number | Text, e.g. "00042" |
NUMBER != "" |
| Quantity | Number | AGE >= 18 |
| Date | Date, e.g. 2026-07-30 |
REGDATE > "2026-01-01" |
| Week | Week, e.g. 2026W31 |
WEEK == "2026W31" |
| Month | Month, e.g. 2026-07 |
MONTH == "2026-07" |
| Single selection | The selected option | STATUS == "Recovered" |
| Multiple selection | The list of selected options | CONTAINS(SYMPTOMS, "Fever") |
| Reference | The ID of the referenced record; navigate to reach its fields | CLINIC.NAME == "Mangina Health Post" |
| Geographic point | LATITUDE, LONGITUDE and ACCURACY components |
LOCATION.LATITUDE > 0 |
| Attachments | The list of attached files | !ISBLANK(FILES) |
| Calculated | The result of the field's formula | ADULT |
A reference field holds the referenced record's ID, but you can navigate through it to any field of the referenced form, including its own reference fields: CLINIC.DISTRICT.NAME.