HTTP & Email Activities
Make REST API calls, download files from URLs, send emails via SMTP, and retrieve emails via IMAP. 4 activities covering the most common integration patterns.
HTTP Request
Sends an HTTP/HTTPS request and returns the response body and status code.
| Parameter | Type | Default | Description |
|---|---|---|---|
| Url | String | — | Full request URL including scheme (e.g., https://api.example.com/orders) |
| Method | GET | POST | PUT | PATCH | DELETE | GET | HTTP method |
| Headers | String (JSON object) | — | Request headers as JSON, e.g. {"Authorization":"Bearer token"} |
| Body | String | — | Request body (JSON, form-encoded, etc.) — used for POST/PUT/PATCH |
| ContentType | String | application/json | Content-Type header value |
| TimeoutMs | Int32 | 30000 | Request timeout in milliseconds |
| OutputVariable | String | — | Variable to store the response body (String) |
| StatusVariable | String | — | Variable to store the HTTP status code (Int32) |
workflow
| 1 | HTTP Request: |
| 2 | Url: "https://api.example.com/orders/{orderId{'}'}" |
| 3 | Method: GET |
| 4 | Headers: '{"Authorization": "Bearer {apiToken{'}'}"}' |
| 5 | OutputVariable: "responseBody" |
| 6 | StatusVariable: "statusCode" |
| 7 | |
| 8 | // Use the response |
| 9 | Assign Variable="orders" Value="${responseBody}" |
JSON parsingAfter an HTTP Request, use Parse JSON (in the JSON/XML category) and Get JSON Value to extract specific fields from the response body.
Download File
Downloads a file from a URL and saves it to disk.
| Parameter | Type | Required | Description |
|---|---|---|---|
| Url | String | Yes | File URL |
| DestinationPath | String | Yes | Local file path to save to (including filename) |
| Overwrite | Boolean | No (default: false) | Replace the file if it already exists |
| Headers | String (JSON) | No | Request headers (e.g., for authenticated downloads) |
Send SMTP Email
Sends an email via SMTP. Supports plain text and HTML bodies, and file attachments.
| Parameter | Type | Required | Description |
|---|---|---|---|
| SmtpHost | String | Yes | Mail server hostname (e.g., smtp.gmail.com) |
| Port | Int32 | Yes | SMTP port (587 for TLS/STARTTLS, 465 for SSL) |
| Username | String | Yes | Sender email / SMTP login |
| Password | String | Yes | SMTP password — always use a variable, never plain text |
| From | String | Yes | Sender display address |
| To | String | Yes | Recipient email address(es), comma-separated |
| Subject | String | Yes | Email subject line |
| Body | String | Yes | Email body — plain text or HTML |
| IsHtml | Boolean | No (default: false) | Treat body as HTML markup |
| Attachments | String (comma-separated paths) | No | File paths to attach |
| Cc | String | No | CC recipients, comma-separated |
| Bcc | String | No | BCC recipients, comma-separated |
workflow
| 1 | Send SMTP Email: |
| 2 | SmtpHost: "smtp.gmail.com" |
| 3 | Port: 587 |
| 4 | Username: "{smtpUser{'}'}" |
| 5 | Password: "{smtpPassword{'}'}" |
| 6 | From: "reports@company.com" |
| 7 | To: "{recipientEmail{'}'}" |
| 8 | Subject: "Daily Report - {today{'}'}" |
| 9 | Body: "<h1>Report attached</h1><p>Please find the report for {today{'}'}</p>" |
| 10 | IsHtml: true |
| 11 | Attachments: "{reportFilePath{'}'}" |
Credentials SecurityNever hard-code SMTP passwords. Store them in a workflow variable loaded from a secure configuration file, or use the Orchestrator Secrets Vault if running via Orchestrator.
Get IMAP Emails
Retrieves emails from an IMAP mailbox (Gmail, Outlook.com, Exchange, or any IMAP server). Returns a list of mail message objects.
| Parameter | Type | Required | Description |
|---|---|---|---|
| ImapHost | String | Yes | IMAP server hostname (e.g., imap.gmail.com) |
| Port | Int32 | No (default: 993) | IMAP port — 993 for SSL |
| Username | String | Yes | Email address / IMAP login |
| Password | String | Yes | IMAP password |
| Folder | String | No (default: INBOX) | Mailbox folder to read from |
| UnreadOnly | Boolean | No (default: true) | Only retrieve unread messages |
| MarkAsRead | Boolean | No (default: false) | Mark retrieved messages as read |
| MaxMessages | Int32 | No (default: 10) | Maximum number of messages to retrieve |
| OutputVariable | String | Yes | List variable to store retrieved mail message objects |
workflow
| 1 | Get IMAP Emails: |
| 2 | ImapHost: "imap.gmail.com" |
| 3 | Username: "{emailUser{'}'}" |
| 4 | Password: "{emailPassword{'}'}" |
| 5 | UnreadOnly: true |
| 6 | MaxMessages: 50 |
| 7 | OutputVariable: "emails" |
| 8 | |
| 9 | For Each: itemVar="email" Collection="${emails}" |
| 10 | Body: |
| 11 | Assign Variable="subject" Value="${email.Subject}" |
| 12 | Assign Variable="body" Value="${email.Body}" |
| 13 | ... |