Portal Community

Node Identity

PropertyValue
Resourceemail
Operationsend
Node TypeIntegration / Action
Output Portssuccess, error

Recipient Configuration

PropertyTypeRequiredDescription
to string / array Required Primary recipient(s). Accepts a single email address, a comma-separated string, or an array expression. Example: {{ vars.customer_email }} or ["alice@co.com","bob@co.com"].
cc string / array Optional Carbon copy recipients. Same format as to. Recipients can see all CC addresses.
bcc string / array Optional Blind carbon copy recipients. Same format as to. BCC addresses are hidden from all other recipients.
reply_to string Optional Reply-to email address. When set, replies go to this address instead of the sender address. Useful for no-reply senders with a monitored reply inbox.

Message Content

PropertyTypeRequiredDescription
subject string Required Email subject line. Supports BizFirst expressions. Example: Your Order {{ vars.order_number }} is Confirmed.
body string Optional Plain text email body. Displayed by email clients that do not render HTML. Supports BizFirst expressions. If html_body is provided, this becomes the fallback.
html_body string Optional Full HTML email body. Supports BizFirst expressions and Liquid template syntax for loops, conditionals, and formatting. Must be a valid HTML document or fragment.
from_name string Optional Display name for the sender. Appears as the "From" name in the recipient's inbox. Example: BizFirst Notifications or {{ vars.company_name }} Orders.
from_email string Optional Override the sender email address. Must be authorised on the SMTP server. If omitted, the SMTP credential's username is used as the sender.

Attachments

PropertyTypeRequiredDescription
attachments array Optional Array of attachment objects. Each object specifies the source and filename. Supports file path references, S3 object references, and inline base64 content.

Attachment Object Schema

FieldTypeDescription
filenamestringFilename as it will appear in the email (e.g. invoice_{{ vars.invoice_number }}.pdf).
content_typestringMIME type of the attachment (e.g. application/pdf, image/png).
sourcestringOne of: base64, file_path, s3, workflow_variable.
datastringThe attachment data. For base64: the encoded string. For file_path: the absolute path. For s3: the S3 URI. For workflow_variable: the variable name containing the data.

SMTP Credential

PropertyRequiredDescription
credential_id Required Reference to an SMTP credential stored in the BizFirst Credentials Manager. The credential must include: host, port, username, password, and tls_mode (one of none, starttls, ssl).
Supported SMTP providers: SendGrid (SMTP relay), Mailgun (SMTP), AWS SES (SMTP), Postmark, Brevo (Sendinblue), Microsoft 365 SMTP, Google Workspace SMTP relay, and any standard SMTP server.

Liquid Template Support in HTML Body

The html_body field supports Liquid template syntax for dynamic HTML generation:

<h2>Order {{ order_number }} Summary</h2>
<table>
  <tr><th>Product</th><th>Qty</th><th>Price</th></tr>
  {% for item in order_items %}
  <tr>
    <td>{{ item.name }}</td>
    <td>{{ item.quantity }}</td>
    <td>{{ item.unit_price | currency }}</td>
  </tr>
  {% endfor %}
</table>
<p>Total: <strong>{{ order_total | currency }}</strong></p>
{% if order.has_discount %}
<p>Discount applied: {{ order.discount_percent }}%</p>
{% endif %}
Email deliverability: For production workflows, ensure your SMTP sender domain has valid SPF, DKIM, and DMARC records configured. Emails from domains without these records risk being flagged as spam by recipient mail servers.