This is a complete reference for all fields available in the connection configuration object. Fields are organized by connection type, starting with fields common to all types.
Connection Types
The type field determines which connection protocol is used. Valid values:
| Type |
Protocol |
Description |
ftp |
FTP |
Standard file transfer |
sftp |
SFTP |
SSH file transfer |
ftps |
FTPS |
FTP over explicit SSL |
sdsftp |
SureDone SFTP |
Internal SureDone SFTP |
sds3 |
SureDone S3 |
Internal SureDone S3 storage |
http |
HTTP/HTTPS |
REST APIs and web services |
email |
IMAP/SMTP |
Email import and export |
Common Fields
These fields are shared across multiple connection types.
| Field |
Type |
Required |
Default |
Description |
Applicable Types |
type |
string |
Yes |
-- |
Connection protocol (see table above) |
All |
address |
string or array |
Conditional |
-- |
Host address, URL, or email address(es). Email type also accepts an array for multiple recipients. |
ftp, sftp, http, email |
username |
string |
Conditional |
-- |
Login username. For HTTP, sent in POST body to login_address. |
ftp, sftp, http |
password |
string |
Conditional |
-- |
Login password. For SFTP with key file auth, this is the key file contents. For HTTP, sent in POST body to login_address. |
ftp, sftp, http |
path |
string |
Conditional |
-- |
Remote directory path for file download/upload |
ftp, sftp, sdsftp, sds3 |
port |
number |
No |
21 (ftp/sftp), 993 (email) |
Connection port |
ftp, sftp, email |
FTP / FTPS Fields
| Field |
Type |
Required |
Default |
Description |
address |
string |
Yes |
-- |
FTP server hostname or IP |
username |
string |
Yes |
-- |
FTP login username |
password |
string |
Yes |
-- |
FTP login password |
path |
string |
Yes |
-- |
Remote directory path |
port |
number |
No |
21 |
FTP port |
ssl_ftp |
boolean |
No |
false |
Open an explicit SSL-FTP connection |
use_pasv_address |
boolean |
No |
true |
Use the address returned by the FTP server for passive mode |
"connection": {
"type": "ftp",
"address": "ftp.supplier.com",
"username": "{{ftp_user}}",
"password": "{{ftp_pass}}",
"path": "/outbound/inventory/",
"ssl_ftp": true,
"use_pasv_address": false
}
SFTP Fields
| Field |
Type |
Required |
Default |
Description |
address |
string |
Yes |
-- |
SFTP server hostname or IP |
username |
string |
Yes |
-- |
SFTP login username |
password |
string |
Yes |
-- |
SFTP login password, or key file contents if is_key_file is true |
path |
string |
Yes |
-- |
Remote directory path |
port |
number |
No |
21 |
SFTP port |
is_key_file |
boolean |
No |
false |
Set to true when password contains the contents of an SSH key file instead of a password |
check_after_send |
boolean |
No |
false |
Verify file was uploaded to the correct directory after sending. Fixes edge case where files may end up in the root directory. |
"connection": {
"type": "sftp",
"address": "sftp.warehouse.com",
"username": "{{sftp_user}}",
"password": "{{sftp_key}}",
"path": "/data/exports/",
"is_key_file": true
}
SDSFTP Fields
SureDone's internal SFTP, used for accessing files within a SureDone user's file space.
| Field |
Type |
Required |
Default |
Description |
path |
string |
Yes |
-- |
Path within the user's file space |
user_id |
number |
Yes |
-- |
SureDone User ID for the connection |
"connection": {
"type": "sdsftp",
"path": "/imports/",
"user_id": 1021
}
S3 (sds3) Fields
SureDone's internal S3 storage.
| Field |
Type |
Required |
Default |
Description |
path |
string |
Yes |
-- |
S3 object key path |
bucket |
string |
Yes |
-- |
S3 bucket name |
"connection": {
"type": "sds3",
"path": "/vendor-feeds/",
"bucket": "suredone-imports"
}
HTTP Fields
Core HTTP Fields
| Field |
Type |
Required |
Default |
Description |
address |
string |
Yes |
-- |
URL to connect to. Supports template variables like {{trigger_value}}. |
method |
string |
Conditional |
POST |
HTTP method: GET, POST, PUT, PATCH, DELETE |
headers |
object |
Conditional |
-- |
HTTP request headers as key-value pairs |
payload |
object |
Conditional |
-- |
Request parameters. Sent as query params for GET, body for POST. |
ssl_http |
boolean |
No |
true |
Verify SSL peer certificate. Set to false for self-signed certs. |
"connection": {
"type": "http",
"address": "https://api.vendor.com/v2/inventory",
"method": "GET",
"headers": {
"Authorization": "Bearer {{api_token}}",
"Accept": "application/json"
},
"payload": {
"page_size": 500
}
}
Authentication Fields
| Field |
Type |
Required |
Default |
Description |
username |
string |
No |
-- |
Username sent to login_address in POST body |
password |
string |
No |
-- |
Password sent to login_address in POST body |
login_address |
string |
No |
-- |
URL for initial login request. Response authorizes subsequent calls to address. |
login_credentials |
object |
No |
-- |
Custom POST body for login, replacing the default username/password fields |
"connection": {
"type": "http",
"address": "https://api.vendor.com/export",
"username": "{{api_user}}",
"password": "{{api_pass}}",
"login_address": "https://api.vendor.com/auth/login",
"method": "POST"
}
OAuth Sub-Object
Optional OAuth configuration for token-based authorization.
| Field |
Type |
Required |
Default |
Description |
oauth.method |
string |
No |
POST |
HTTP method for token requests |
oauth.address |
string |
No |
-- |
Token endpoint URL |
oauth.grant_type |
string |
No |
-- |
OAuth grant type |
oauth.client_id |
string |
No |
-- |
OAuth client ID |
oauth.client_secret |
string |
No |
-- |
OAuth client secret |
oauth.redirect |
boolean |
No |
-- |
Indicates automation is OAuth-authorizable (redirect flow) |
oauth.redirect_uri |
string |
No |
-- |
Redirect URL after authorization |
oauth.initiate_oauth_uri |
string |
No |
-- |
Vendor's OAuth sign-in URL |
oauth.exchange_code |
object |
No |
-- |
Configuration for exchanging auth code for access token |
oauth.access_token |
string |
No |
-- |
Access token (auto-populated in redirect flows) |
oauth.expires_in |
number |
No |
-- |
Token expiration in seconds (auto-populated in redirect flows) |
"connection": {
"type": "http",
"address": "https://api.vendor.com/data",
"method": "GET",
"oauth": {
"address": "https://api.vendor.com/oauth/token",
"grant_type": "client_credentials",
"client_id": "{{client_id}}",
"client_secret": "{{client_secret}}"
}
}
Auth Sub-Object
Optional custom authentication flow (non-OAuth).
| Field |
Type |
Required |
Default |
Description |
auth.method |
string |
No |
POST |
HTTP method for auth request |
auth.address |
string |
Yes |
-- |
Auth endpoint URL |
auth.token_key |
string |
Yes |
-- |
Key name (or JSONPath) in the auth response to extract the token from. The extracted value is available as {{auth_value}} in subsequent requests. |
auth.headers |
object |
No |
-- |
Headers for the auth request |
auth.payload |
object |
No |
-- |
Payload for the auth request |
"connection": {
"type": "http",
"address": "https://api.vendor.com/data",
"auth": {
"address": "https://api.vendor.com/authenticate",
"method": "POST",
"payload": {
"apiKey": "{{api_key}}"
}
}
}
HMAC Sub-Object
Generate an HMAC signature for use in requests via the {{HMAC}} template variable.
| Field |
Type |
Required |
Default |
Description |
hmac.algo |
string |
Yes |
-- |
Hashing algorithm name (e.g., sha256) |
hmac.data |
string |
Yes |
-- |
Message to be hashed |
hmac.key |
string |
Yes |
-- |
Shared secret key |
hmac.binary |
boolean |
No |
false |
true = raw binary output, false = lowercase hex |
"connection": {
"type": "http",
"address": "https://api.vendor.com/data",
"headers": {
"X-Signature": "{{HMAC}}"
},
"hmac": {
"algo": "sha256",
"data": "{{request_body}}",
"key": "{{secret_key}}",
"binary": false
}
}
Pagination Fields
| Field |
Type |
Required |
Default |
Description |
paginate |
boolean |
No |
false |
Enable downloading all response pages |
pagination.next_token |
string |
No |
"next" |
Response key containing next page URL. Supports JSONPath for nested keys. |
pagination.next_parameter |
string |
No |
-- |
Use when next_token returns a GET parameter value instead of a full URL |
pagination.page_parameter |
string |
No |
"page" |
GET parameter name for page number (when no next token is available) |
pagination.page_start |
number |
No |
1 |
Starting page number |
pagination.page_iterator |
number |
No |
1 |
Amount to increment page number per request |
pagination.ignore_errors |
boolean |
No |
false |
Gracefully end pagination on 400/500 errors instead of failing |
pagination.page_per_second |
number |
No |
-- |
Rate limit: max paginated requests per second |
"connection": {
"type": "http",
"address": "https://api.vendor.com/products",
"method": "GET",
"paginate": true,
"pagination": {
"next_token": "$.metadata.nextCursor",
"page_per_second": 2
}
}
Pointer Fields
Track a value across automation runs for incremental data fetching.
| Field |
Type |
Required |
Default |
Description |
pointer.field |
string |
Yes |
-- |
Field to extract the pointer value from in responses |
pointer.current |
number |
No |
1 |
Starting value for the pointer |
pointer.increment |
number |
No |
50 |
Value to increment the pointer by each run |
pointer.start_parameter |
string |
No |
-- |
GET parameter name for start value (alternative to {{POINTER_START}}) |
pointer.end_parameter |
string |
No |
-- |
GET parameter name for end value (alternative to {{POINTER_END}}) |
pointer.reset_current |
boolean |
No |
false |
Reset pointer to current value. Does not persist -- must be sent each time. |
"connection": {
"type": "http",
"address": "https://api.vendor.com/products",
"method": "GET",
"pointer": {
"field": "lastId",
"current": 0,
"increment": 100,
"start_parameter": "offset",
"end_parameter": "limit"
}
}
Trigger Fields
Make prerequisite requests to obtain values needed for the main request. Triggers execute in array order, and each trigger's result is available as {{trigger_value}} in subsequent triggers and the main connection.
| Field |
Type |
Required |
Default |
Description |
triggers |
array |
No |
-- |
Array of trigger configuration objects |
triggers[].key |
string |
Yes |
-- |
Response key to extract the trigger value from. Use key1, key2 for multiple keys. |
triggers[].key_regex |
string |
No |
-- |
Same as key, but supports regex syntax |
triggers[].address |
string |
Yes |
-- |
URL for the trigger request |
triggers[].method |
string |
No |
POST |
HTTP method for the trigger request |
triggers[].headers |
object |
No |
-- |
Headers for the trigger request |
triggers[].payload |
object |
No |
-- |
Payload for the trigger request |
triggers[].max_retries |
number |
No |
3 |
Number of retry attempts |
triggers[].retry_time |
number |
No |
3600 |
Seconds between retries (increases exponentially) |
triggers[].retry_time_fixed |
boolean |
No |
false |
Disable exponential backoff for retries |
triggers[].allow_empty_values |
boolean |
No |
true |
Allow empty/null as a valid trigger value |
triggers[].template |
string |
No |
-- |
Twig template for the trigger request payload. Allows dynamic payload construction. |
"connection": {
"type": "http",
"address": "{{trigger_value}}",
"method": "GET",
"triggers": [
{
"key": "export_file",
"address": "https://api.example.com/v1/bulk/exports",
"method": "POST",
"payload": {"type": "items"}
},
{
"key": "url",
"address": "https://api.example.com/v1/bulk/exports/{{trigger_value}}",
"method": "GET"
}
]
}
Throttle Sub-Object
Rate-limit outbound requests.
| Field |
Type |
Required |
Default |
Description |
throttle.request_limit |
number |
Yes |
-- |
Maximum number of requests allowed |
throttle.time_period |
number |
No |
1 |
Time window in seconds |
throttle.endpoint |
string |
No |
-- |
Endpoint path appended to host for the throttle key |
"connection": {
"type": "http",
"address": "https://api.vendor.com/products",
"throttle": {
"request_limit": 10,
"time_period": 60
}
}
Caching Fields
| Field |
Type |
Required |
Default |
Description |
cached |
boolean |
No |
false |
Enable caching of HTTP responses for a given endpoint |
cache_ttl |
number |
No |
86400 (1 day) |
Seconds before cached results expire |
cache_force |
boolean |
No |
false |
Force caching on, overriding debug mode and CLI flags |
"connection": {
"type": "http",
"address": "https://api.vendor.com/categories",
"cached": true,
"cache_ttl": 3600,
"cache_force": true
}
Email Fields
Core Email Fields
| Field |
Type |
Required |
Default |
Description |
address |
string or array |
Yes |
-- |
Recipient email address(es). String for single, array for multiple. |
subject |
string |
No |
-- |
Email subject line. Supports {{field}} template variables. |
body |
string |
No |
-- |
Email body text. Supports {{field}} template variables. |
port |
number |
No |
993 |
IMAP/SMTP port |
sender_address |
string |
No |
-- |
Custom sender email address |
sender_name |
string |
No |
-- |
Custom sender display name |
send_as_attachment |
boolean |
No |
false |
Send exported data as a file attachment |
cc |
string or array |
No |
-- |
CC recipient(s) |
bcc |
string or array |
No |
-- |
BCC recipient(s) |
reply-to |
string |
No |
-- |
Reply-To header address |
"connection": {
"type": "email",
"address": ["orders@supplier.com", "backup@supplier.com"],
"subject": "New Order: {{oid}}",
"body": "Order {{oid}} has been placed. Status: {{status}}.",
"send_as_attachment": true,
"cc": "manager@example.com"
}
Email Import Fields
| Field |
Type |
Required |
Default |
Description |
mailbox |
string |
No |
"INBOX" |
Mail folder to check for importing files |
mark_as_seen |
boolean |
No |
false |
Mark email as read after successful file import |
email_search |
object |
No |
-- |
Search criteria for filtering emails to import from (see below) |
email_search Criteria
All fields within email_search are optional. Combine multiple criteria to narrow results.
| Field |
Type |
Description |
all |
boolean |
Return all messages matching the other criteria |
answered |
boolean |
Match messages with the ANSWERED flag |
bcc |
string |
Match messages with string in Bcc field |
before |
string |
Match messages dated before this date |
body |
string |
Match messages containing string in body |
cc |
string |
Match messages with string in Cc field |
deleted |
boolean |
Match deleted messages |
flagged |
boolean |
Match flagged/important messages |
from |
string |
Match messages with string in From field |
keyword |
string |
Match messages with this keyword |
new |
boolean |
Match new messages |
old |
boolean |
Match old messages |
on |
string |
Match messages dated on this exact date |
recent |
boolean |
Match messages with the RECENT flag |
seen |
boolean |
Match messages that have been read |
since |
string |
Match messages dated after this date |
subject |
string |
Match messages with string in Subject |
text |
string |
Match messages containing text string |
to |
string |
Match messages with string in To field |
unanswered |
boolean |
Match unanswered messages |
undeleted |
boolean |
Match non-deleted messages |
unflagged |
boolean |
Match unflagged messages |
unkeyword |
string |
Match messages without this keyword |
unseen |
boolean |
Match unread messages |
"connection": {
"type": "email",
"address": "imports@example.com",
"mailbox": "INBOX",
"mark_as_seen": true,
"email_search": {
"unseen": true,
"since": "-10 days",
"subject": "Inventory Update",
"from": "supplier@vendor.com"
}
}
Field Applicability Matrix
| Field |
FTP |
SFTP |
FTPS |
SDSFTP |
S3 |
HTTP |
Email |
type |
x |
x |
x |
x |
x |
x |
x |
address |
x |
x |
x |
|
|
x |
x |
username |
x |
x |
x |
|
|
x |
|
password |
x |
x |
x |
|
|
x |
|
path |
x |
x |
x |
x |
x |
|
|
port |
x |
x |
x |
|
|
|
x |
ssl_ftp |
x |
|
x |
|
|
|
|
use_pasv_address |
x |
|
|
|
|
|
|
is_key_file |
|
x |
|
|
|
|
|
check_after_send |
|
x |
|
|
|
|
|
user_id |
|
|
|
x |
|
|
|
bucket |
|
|
|
|
x |
|
|
method |
|
|
|
|
|
x |
|
headers |
|
|
|
|
|
x |
|
payload |
|
|
|
|
|
x |
|
ssl_http |
|
|
|
|
|
x |
|
login_address |
|
|
|
|
|
x |
|
login_credentials |
|
|
|
|
|
x |
|
oauth |
|
|
|
|
|
x |
|
auth |
|
|
|
|
|
x |
|
hmac |
|
|
|
|
|
x |
|
paginate |
|
|
|
|
|
x |
|
pagination |
|
|
|
|
|
x |
|
pointer |
|
|
|
|
|
x |
|
triggers |
|
|
|
|
|
x |
|
throttle |
|
|
|
|
|
x |
|
cached |
|
|
|
|
|
x |
|
cache_ttl |
|
|
|
|
|
x |
|
cache_force |
|
|
|
|
|
x |
|
subject |
|
|
|
|
|
|
x |
body |
|
|
|
|
|
|
x |
sender_address |
|
|
|
|
|
|
x |
sender_name |
|
|
|
|
|
|
x |
send_as_attachment |
|
|
|
|
|
|
x |
mailbox |
|
|
|
|
|
|
x |
email_search |
|
|
|
|
|
|
x |
cc |
|
|
|
|
|
|
x |
bcc |
|
|
|
|
|
|
x |
reply-to |
|
|
|
|
|
|
x |
mark_as_seen |
|
|
|
|
|
|
x |