Send email
Send an email based on a row
Ingredient Family: rowActionsIngredients
Outline Display: Send an email to {{to}} with subject {{subject}}.{{allowedRecipients:
Allowed recipients: {{allowedRecipients}}}}{{blockedBodyPatterns:
Blocked body patterns: {{blockedBodyPatterns}}}} The content is:
{{body}}
Details
If the email cannot be sent because the app is misconfigured – no email credentials, credentials that cannot be parsed, or a recipient formula that produced an empty address – the step fails the action with a malfunction message and the rest of the pipeline does not run. Nothing is sent in those cases.
The recipient formula produces a comma-separated list of bare addresses; display-name forms like Dan <dan@x.com> are refused, and so is a recipient or subject carrying a line break or other control character, which is refused rather than cleaned up since it could otherwise inject headers. allowedRecipients is checked against every address produced, and one address that misses fails the step and names it. Every outcome, sent or refused, is written to the audit log.
Local scope
The parent slot binds these (look up the slot in the parent to see how):
$table– The table to act on
Settings
Required
-
Email: API connection (API category:Email)
The API for sending email
Set this to thenameof anapi:item whoseprovider:is in theEmailcategory, or which reachesEmailon another category’s behalf – a brokered api counts when its own settings point it at that service, and its provider page says which setting decides. Do not set it to a service name; pick the API the service points at. -
subject: formula (returns text; required, non-nullable)
A formula that generates the email subject line
Scope: all columns of$table(reference as[ColumnName], e.g.,[Name],[Price]) -
to: formula (returns text; required, non-nullable)
A formula that generates the email recipient
Scope: all columns of$table(reference as[ColumnName], e.g.,[Name],[Price]) -
body: formula (returns formatted text; required, non-nullable)
A formula that produces the email body. Note that because the output is richtext, any math-like operators, such asIF, must be wrapped in $$…$$.
Scope: the app’s pages (e.g.,[page_name]), all columns of$table(reference as[ColumnName], e.g.,[Name],[Price])
Optional
-
allowedRecipients: constant value (type: text; optional)
Regex pattern restricting which email addresses may be sent to (e.g. ‘.*@company.com$’). Checked against every address the recipient formula produces; a single address that does not match fails the step. Leave blank to allow any recipient. -
blockedBodyPatterns: constant value (type: text; optional)
Regex matched against the outbound subject and body; if it matches, the step fails and nothing is sent. Combine multiple secret/PII patterns with regex alternation.