Workflow blocks
Send Email
Send an email via Gmail
gmail/send-email — Send an email via Gmail.
Where it appears
The Send Email block lives in the Integrations group of the Workflow Builder. Connect the Gmail integration before adding it.
Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
to | text (supports references) | Yes | — | Recipient email address. Use literal text or <StepName.field> to reference an address from a previous step. |
cc | text (supports references) | No | — | Optional CC recipient address(es). Accepts literal text or <StepName.field>. |
bcc | text (supports references) | No | — | Optional BCC recipient address(es), hidden from other recipients. Accepts literal text or <StepName.field>. |
subject | text (supports references) | Yes | — | Subject line of the email. Use literal text or <StepName.field> to reference a value from a previous step. |
body | text (multi-line, supports references) | Yes | — | Body content of the email, interpreted according to the Content Type field. Use literal text or <StepName.field> to reference upstream content. |
contentType | select | No | text | How the body is sent: Plain Text or HTML. Choose HTML to send formatted markup. Options: text, html. |
Inputs and outputs
Inputs are the configurable fields above. The block produces these outputs:
Outputs
Reference an output downstream with <Send Email.field>.
| Name | Type | Description |
|---|---|---|
success | boolean | Operation succeeded |
messageId | string | Sent message ID |
threadId | string | Thread ID |
error | string | Error message if failed |
Example
A minimal configuration for this block:
{
"type": "gmail/send-email",
"config": {
"to": "<PreviousStep.field>",
"subject": "<PreviousStep.field>",
"body": "<PreviousStep.field>",
"contentType": "text"
}
}Limits and failure modes
- Requires a connected Gmail integration. Calls fail if that integration is disconnected or its authorization has expired.
- Required fields (
to,subject,body) must be set, or the block fails validation before it runs. - On failure the
erroroutput is populated; downstream blocks that reference other outputs may not receive values.