Oracle Responsys (SFTP)
Deliver audience and profile data to Oracle Responsys in bulk using Connect, Responsys’s file-based import engine. Zeotap writes delimited files (optionally PGP-encrypted) over SFTP to the Responsys File Server, where a Connect import job you configure loads them into a profile list, profile extension table (PET), or supplemental table. Use this for large loads and for drop-in replacement of an existing file-based Responsys pipeline.
This is a separate destination from the real-time Oracle Responsys (REST API) destination — choose SFTP for bulk file delivery, or the REST destination for row-level API syncs and triggered email.
Prerequisites
- A configured Responsys Connect import job (Import List Data, Import Supplemental Table Data, or Import Profile Extension Data). Zeotap produces the file; the Connect job owns the field mapping, match key, merge rules, and schedule. Only users with the Data Director role can create Connect jobs.
- Either the Responsys File Server (SSH key authentication) or an external SFTP server with a static IP.
- The SFTP host, upload directory, and filename pattern your Connect job expects.
- Optional: a PGP/GPG public key if the Connect job is set to decrypt uploaded files.
Authentication
SSH Key (Responsys File Server)
The Responsys File Server requires SSH key authentication.
- Generate an SSH2 key pair (RSA, ≥2048-bit recommended, no passphrase).
- Upload the public key in Responsys under Connect account settings.
- In Zeotap, enter the Username and paste the Private Key. If the key is encrypted, also enter the Private Key Passphrase.
Password (external SFTP)
For an external SFTP server, enter the Username and Password. (Not available for the Responsys File Server.)
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| SFTP Host | Text | Yes | The SFTP hostname for your account/pod (shown in the Connect job UI), or an external server’s host/IP. |
| Port | Number | No | SFTP port. Default: 22. |
| PGP Public Key | File | No | ASCII-armored PGP/GPG public key. If set, each file is encrypted and a .pgp suffix is added. The Connect job must have File Encrypted with PGP/GPG Key enabled. |
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Upload Directory | Text | Yes | The SFTP directory the Connect job reads from. On the Responsys File Server this is typically upload. |
| Filename Template | Text | Yes | Template for each generated file. Must match the filename pattern your Connect job expects (see tokens below). |
| Mapping ID | Text | No | Value for the {mappingId} token. |
| Segment Name | Text | No | Value for the {segment} token (e.g. the audience name). |
| Field Delimiter | Select | No | Comma, Tab, or Pipe. Default: Comma. Must match the Connect job’s “Fields are delimited by” setting. |
| Include Header Row | Toggle | No | Write the mapped column names as the first line. Default: on. Enable “First line contains column names” in the Connect job to match. |
| Max File Size (MB) | Number | No | Roll to the next {fileNumber} part when a file reaches this size. Default: 2048. Files are streamed, never held whole in memory. |
| Write Count File (.cnt) | Toggle | No | Also write a sibling .cnt file containing the record count, for the Connect job’s “Confirm Expected Record Count” validation. Verify the expected count-file name and format against your Connect job before enabling — conventions vary, and encrypted (.pgp) files may name the count file differently. |
Filename template tokens
| Token | Expands to |
|---|---|
{fileNumber} | Zero-padded 3-digit part index (001, 002, …), incrementing across the whole sync. |
{mappingId} | The Mapping ID setting. |
{segment} | The Segment Name setting. |
{timestamp} | UTC timestamp, yyyyMMdd-HHmmssSSS (millisecond precision). |
{action} | add, update, or delete — derived from the sync mode (see below). |
Unknown tokens are left literal; unset settings render empty. The default template is {fileNumber}_{mappingId}_{segment}_{timestamp}-{action}.csv.
Supported Operations
Sync Modes: Insert, Update, Upsert, Mirror
Audience Sync Modes: Add, Remove, Mirror, Upsert
Rows are grouped into per-action files:
| Sync mode | File action |
|---|---|
| Insert / Add / Upsert | add |
| Update | update |
| Remove | delete |
| Mirror | added/changed rows → add; removed rows → delete |
Delete caveat. Responsys Connect has no native per-row delete for profile lists — a
deletefile only removes records if your Connect job (or an App/Web-Push channel list) is configured to consume it as a match-and-remove load. Confirm your Connect job’s delete handling before relying onRemove/Mirrorremovals.
Features
- Field Mapping: Yes — your mapped destination field names become the CSV columns. Columns are written in alphabetical order with the field names as the header row, so configure your Connect job to map columns by name (“First line contains column names”). Positional (header-off) mapping is not recommended, as column order is alphabetical rather than the order shown in your mapping.
- Schema Introspection: No — the file’s columns come from your field mapping; the Connect job maps them to Responsys fields.
How It Works
- Rows in each batch are grouped by action (
add/update/delete). - Each group is streamed as a delimited file (with an optional header) directly to the SFTP server — never buffered whole in memory — and rolled into numbered parts (
{fileNumber}) when the size threshold is reached. - If a PGP public key is configured, each file is encrypted (ASCII-armored) as it streams and named with a
.pgpsuffix. - Each file is written to a temporary name and renamed on completion, so the Connect job never sees a partial file. An optional
.cntcount file is written alongside. - Your Responsys Connect job picks up the files from the upload directory and loads them per its configured mapping and match rules.
The files Zeotap produces must match your Connect job’s configured filename pattern, delimiter, column set, and match key — those live in Responsys, not in Zeotap.
Best Practices
- Set the Filename Template, Field Delimiter, and Include Header Row to exactly match your Connect job, or the job will not pick up (or will misparse) the files. The template must include
{fileNumber}so multi-part files don’t overwrite each other. - Keep Include Header Row on and map columns by name in the Connect job. Columns are written alphabetically, so a positional (header-off) mapping will misalign.
- Follow Responsys column-name rules in your field mapping: ≤30 characters, start with a letter/number, letters/digits/underscore only, and reserve a trailing underscore for Responsys system fields (e.g.
EMAIL_ADDRESS_). - Prefer the Responsys File Server with SSH key auth. For an external SFTP server, ensure it has a static IP (a Connect requirement).
- Use PGP encryption when required by your security policy; SFTP transport is already encrypted, so PGP is optional.
Troubleshooting
Authentication failed
For the Responsys File Server, ensure the public key matching your private key is registered in Responsys and the key is SSH2-compliant. For external SFTP, verify the username/password.
Connect job does not pick up the files
The generated filename must match the pattern the Connect job watches for. Check the Filename Template, Mapping ID, and Segment Name against the job, and confirm files land in the correct Upload Directory (typically upload).
Records rejected or misparsed
The Field Delimiter and Include Header Row settings must match the job’s “Fields are delimited by” and “First line contains column names” options. Confirm your mapped columns exist on the target list/table.
Deletes have no effect
Responsys profile lists have no native per-row file delete. Ensure your Connect job (or App/Web-Push channel list) is set up to consume the delete file as a match-and-remove load; otherwise Remove/Mirror removals will not delete records.
External SFTP connection fails
Connect only supports external SFTP servers with a static IP address. Verify the host, port, and that the server is reachable.
PGP decryption fails in Responsys
Ensure the PGP Public Key you configured matches the private key Responsys holds, and that the Connect job has File Encrypted with PGP/GPG Key enabled.