Registry document
The registry names the modules an organisation may import into, in creation order, which is the order
a row’s records are written in unless a link between them needs another: a module whose formula
reads another’s record (rec.Account.id), or whose lookup searches another module the same file
writes on a field the file fills there, is written after it where the links allow, and this order
breaks ties. A formula that reads a module still written later, its own record’s id, a field the CRM fills in
itself, or an earlier record as a whole (JSON.stringify(rec.Account), not a test such as
rec.Account ? … : …) is worked out after the record is saved and, where it comes to a value
and the field is one it may fill, written by a second write
(what that costs); the record’s
own ordinary fields are read before the write.
{ "modules": [ { "key": "accounts", "apiName": "Accounts", "label": "Accounts", "singular": "Account", "defaultEnabled": true }, { "key": "contacts", "apiName": "Contacts", "label": "Contacts", "singular": "Contact", "defaultEnabled": true } ], "expressionContext": "rec", "dateFormat": "DMY", "apiDelayMs": 200}| Field | Meaning |
|---|---|
key |
Stable identifier used in templates and state. Lower-case. |
apiName |
The destination’s module name. |
singular |
The name formulas use: rec.<singular>. Must be an identifier. |
defaultDuplicateCheck |
The match rule a new import starts with. |
excludedFields |
Fields hidden from mapping on this module. Pushed, the list sets the Hidden mark on the fields it names (see excluding fields for when a fields file decides instead); served, it is every field of the module that carries the mark. |
| — | A mapping a field starts with is the FIELD’s: defaultMapping, not a module key. It was seedMappings here. |
expressionContext |
The record context name in formulas. Default rec. |
dateFormat |
How ambiguous numeric dates are read: DMY, MDY or YMD. |
apiDelayMs |
How long a run waits after each row of an import, or batch of up to 10 rows it writes — and, set above zero, after each batch of lookups — in milliseconds; 200 when absent, and a whole number from 0 to 60,000 (a minute) when given. It is a pause in the tab that runs the import, and it is not shared across runs, tabs or organisations. Written a record a call it is not a gap between every write, since a row can write to several modules with none between them. Where records go up to 10 to a call, the calls themselves are paced. A longer pause slows a run down, and a pause is not a reliable way to save API credits. With a pause above zero, the lookups a run asks ahead of its rows go one batch at a time, each followed by the pause, and any other value is looked up as its row reaches it. It is the connection’s own: a registry pushed for one connection sets that connection’s pause and no other’s, and a registry that leaves it out puts the default back. |