File Transfer & Transformation

Templates for transferring files between SFTP, FTP, and S3, with optional header manipulation, file joins, and format conversion.

File transfer and transformation templates move, merge, reformat, or convert files between FTP, SFTP, and S3 locations. These templates do not send data to Capillary ingestion APIs. Select a template, configure the block details for your environment, and deploy the dataflow.

The following templates are available for file transfer and transformation.

SFTP to SFTP with 2 files join

Downloads two files from an SFTP server, unzips, joins them on matching fields, zips the merged output, and pushes it to an SFTP server.

Use case

A brand exports two related datasets to an SFTP location daily and needs them combined into a single file before the data is shared with a downstream system. This template joins the two files on a common field and delivers the merged output to the destination SFTP server in a single scheduled run.

Block configuration

The following table lists the blocks in the SFTP to SFTP with 2 Files Join template, describes what each block does, and provides the configured values for each field.

Block NameConfiguration FieldConfigured Value
Connect-to-source
Type: sftp_read
Hostnamedata.capillarydata.com
Usernamenull
Source Directory/tmp/
Filename Pattern.*.csv. Matches all CSV files.
Processed Directorynull
Unzip Filesfalse
API Error File Pathnull
Search Directory Recursivelyfalse
Port22
File Delimiter,
Report Status Codeall
Decrypt-data
Type: decrypt_content
Encryption AlgorithmPGP
Private Key FileRedacted
Private PassphraseRedacted
Is Enabledfalse
Ok-file
Type: ok_file_3
Join-data
Type: two_join
Join TypeINNER_JOIN
Files Delimiter,
File 1 Regexmerge.*.csv
File 1 Join Headersmobile
File 2 Regexnull
File 2 Join Headersmobile
Joined Filenamemerg_now():format('yyyy-MM-dd').csv
Join Use CaseNONE
Use Alphabetical Sorttrue
Merge Based on Namefalse
File 1 TemplateFile_1_{'<common>'}.csv
File 2 TemplateFile_2_{'<common>'}.csv
File 1 Is Headerlessfalse
File 1 Headersnull
File 2 Is Headerlessfalse
File 2 Headersnull
Match All Regexfalse
All Unique Matchfalse
Encrypt-data
Type: encrypt_content
Encryption AlgorithmPGP
Public Key FileRedacted
Public Key User IDnull
Is Enabledfalse
Connect-to-destination
Type: sftp_write
Hostnamedata.capillarydata.com
Usernamecapillary
PasswordRedacted
Remote Pathnull
Create Remote Directorytrue
Conflict ResolutionIGNORE
Zip Filestrue
Port22
Output File Name${'${filename }'}. Uses the source filename.
Output File Name${filename} . Uses the source filename.
Private Key PathNot configured

SFTP to FTP with 2 files join

Downloads two files from an SFTP server, unzips, joins them, zips the merged output, and pushes it to an FTP server.

Use case

A brand stores two separate data files on an SFTP server and needs to deliver a merged file to a partner system that accepts data only via FTP. This template handles the join and transfer in a single operation.

Block configuration

The following table lists the blocks in the SFTP to FTP with 2 files join template, describes what each block does, and provides the configured values for each field.

Block NameConfiguration FieldConfigured Value
Connect-to-source
Type: sftp_read
Hostnamedata.capillarydata.com
Usernamenull
Source directory/tmp/
Filename pattern.*.csv. Matches all CSV files.
Processed directorynull
Unzip filesfalse
API error file pathnull
Search directory recursivelyfalse
Port22
File delimiter,
Report status codeall
Decrypt-data
Type: decrypt_content
Encryption algorithmPGP
Private key fileRedacted
Private passphraseRedacted
Is enabledfalse
Ok-file
Type: ok_file_3
Join-data
Type: two_join
Join typeINNER_JOIN
Output file delimiter,
File 1 regexmerge.*.csv
File 1 merge headersmobile
File 2 regexnull
File 2 merge headersmobile
Joined filenamemerg_now():format('yyyy-MM-dd').csv
Join use caseNONE
Alphabetical sortfalse
Merge based on common namefalse
File 1 templateFile_1_<common>.csv
File 2 templateFile_2_<common>.csv
File 1 is headerlessfalse
File 2 is headerlessfalse
File 1 headersnull
File 2 headersnull
Match all regextrue
All unique matchtrue
Encrypt-data
Type: encrypt_content
Encryption algorithmPGP
Public key fileRedacted
Public key user IDnull
Is enabledfalse
Connect-to-destination
Type: sftp_write
Hostnamedata.capillarydata.com
Usernamecapillary
PasswordRedacted
Remote pathnull
Create remote directorytrue
Conflict resolutionIGNORE
Zip filestrue
Port22
Output file name${filename}. Uses the source filename.
Private key pathRedacted
Key passphraseRedacted

SFTP to FTP with 3 files join

Downloads three files from an SFTP server, unzips, joins them, remaps headers, zips the merged output, and pushes it to an FTP server.

Use case

A brand receives data across three separate files from different upstream systems and needs to consolidate them before sharing with a partner. This template joins all three files and remaps column headers to match the partner's expected format before delivering the output to the FTP destination.

Block configuration

The following table lists the blocks in the SFTP to FTP with 3 Files Join template, describes what each block does, and provides the configured values for each field.

Block Name

Configuration Field

Configured Value

Connect-to-source
Type: sftp_read

Hostname

data.capillarydata.com

Username

null

Source directory

/tmp/

Filename pattern

.*.csv. Matches all CSV files.

Processed directory

null

Unzip files

false

API error file path

null

Search directory recursively

false

Port

22

File delimiter

,

Report status code

all

Decrypt-data
Type: decrypt_content

Encryption algorithm

PGP

Private key file

Redacted

Private passphrase

Redacted

Is enabled

false

Ok-file
Type: ok_file_3

Join-data
Type: three_join

File 1 and File 2 join type

LEFT_OUTER_JOIN

File 1 and File 3 join type

OUTER_JOIN

Files delimiter

,

File 1 regex

merge.*.csv

File 1 join headers

mobile

File 2 regex

push.*.csv

File 2 join headers

mobile

File 3 regex

jointx.*.csv

File 3 join headers

mobile

Joined filename

merged3_now():format('yyyy-MM-dd').csv.
Uses the current date in the format yyyy-MM-dd.

Join use case

NONE

File 1 headers

null

File 1 is headerless

false

File 2 headers

null

File 2 is headerless

false

File 3 is headerless

false

File 3 headers

null

Merge based on name

false

File 1 template

null

File 2 template

null

File 3 template

null

Use alphabetical sort

false

Rebuild-headers
Type: transform_header_data

Output headers order

null

Output file delimiter

,

Output filename

merge_now():format('yyyy-MM-dd').csv.
Uses the current date in the format yyyy-MM-dd.

Headers mapping

{"source":"source","loyaltyType":"loyaltyType", "accountId":"accountId","identifierType":"identifierType", "identifierValue":"identifierValue","mobile":"mobile", "wechat":"wechat","gender":"gender"}

Is headerless

false

Headerless mapping

null

Encrypt-data
Type: encrypt_content

Encryption algorithm

PGP

Public key file

Redacted

Public key user ID

null

Is enabled

false

Connect-to-destination
Type: sftp_write

Hostname

data.capillarydata.com

Username

capillary

Password

Redacted

Remote path

null

Create remote directory

true

Conflict resolution

IGNORE

Zip files

true

Port

22

Output filename

${filename }. Uses the source filename.

Private key path

Redacted

Key passphrase

Redacted

SFTP to FTP with 4 files join

Downloads four files from an SFTP server, unzips, joins them, remaps headers, zips the merged output, and pushes it to an FTP server.

Use case

A brand consolidates data from four source files before pushing the merged result to a downstream FTP location. This template handles the multi-file join, header remapping, and delivery in one scheduled operation.

Block configuration

The following table lists the blocks in the SFTP to FTP with 4 Files Join template, describes what each block does, and provides the configured values for each field.

Block Name

Configuration Field

Configured Value

Connect-to-source
Type: sftp_read

Hostname

data.capillarydata.com

Username

null

Source Directory

/tmp/

Filename Pattern

.*.csv. Matches all CSV files.

Processed Directory

null

Unzip Files

false

API Error File Path

null

Search Directory Recursively

false

Port

22

File Delimiter

,

Report Status Code

all

Decrypt-data
Type: decrypt_content

Encryption Algorithm

PGP

Private Key File

Redacted

Private Passphrase

Redacted

Is Enabled

false

Ok-file
Type: ok_file_3

Join-data
Type: four_join

File 1–2 Join Type

OUTER_JOIN

File 1–3 Join Type

OUTER_JOIN

File 1–4 Join Type

OUTER_JOIN

Files Delimiter

,

File 1 Regex

one.*.csv

File 1 Join Headers

mobile

File 2 Regex

two.*.csv

File 2 Join Headers

mobile

File 3 Regex

3.*.csv

File 3 Join Headers

mobile

File 4 Regex

4.*.csv

File 4 Join Headers

mobile

Joined Filename

merged4files_now():format('yyyy-MM-dd').csv

File 1 Is Headerless

false

File 1 Headers

null

File 2 Is Headerless

false

File 2 Headers

null

File 3 Is Headerless

false

File 3 Headers

null

File 4 Is Headerless

false

File 4 Headers

null

Use Alphabetical Sort

false

Merge Based on Name

false

File 1 Template

null

File 2 Template

null

File 3 Template

null

File 4 Template

null

Rebuild-headers
Type: transform_header_data

Output Headers Order

null

Output File Delimiter

,

Output Filename

merge_now():format('yyyy-MM-dd').csv

Headers Mapping

{'{"source":"source","loyaltyType":"loyaltyType", "accountId":"accountId","identifierType":"identifierType", "identifierValue":"identifierValue","mobile":"mobile", "wechat":"wechat","gender":"gender"}'}

Is Headerless

false

Headerless Mapping

null

Encrypt-data
Type: encrypt_content

Encryption Algorithm

PGP

Public Key File

Redacted

Public Key User ID

null

Is Enabled

false

Connect-to-destination
Type: sftp_write

Hostname

data.capillarydata.com

Username

capillary

Password

Redacted

Remote Path

null

Create Remote Directory

true

Conflict Resolution

IGNORE

Zip Files

true

Port

22

Output File Name

${'${filename }'}. Uses the source filename.

Private Key Path

Redacted

Key Passphrase

Redacted

SFTP to FTP with 3 files join with encrypt and decrypt

Downloads three files from an SFTP server, decrypts them, unzips, joins, remaps headers, zips, encrypts the output, and pushes it to an FTP server.

Use case

A brand receives three encrypted source files on an SFTP server and needs to merge them before sending the combined result to a partner via FTP. The partner requires the output file to be encrypted. This template handles decryption on ingress, the join and header remap, and re-encryption on egress in a single automated flow.

Block configuration

The following table lists the blocks in the SFTP to FTP with 3 Files Join with Encrypt and Decrypt template, describes what each block does, and provides the configured values for each field.

Block Name

Configuration Field

Configured Value

Connect-to-source
Type: sftp_read

Hostname

data.capillarydata.com

Username

null

Source directory

/tmp/

Filename pattern

.*.csv. Matches all CSV files.

Processed directory

null

Unzip files

false

API error file path

null

Search directory recursively

false

Port

22

File delimiter

,

Report status code

all

Decrypt-data
Type: decrypt_content

Encryption algorithm

PGP

Private key file

Redacted

Private passphrase

Redacted

Is enabled

false

Join-data
Type: three_join

File 1 and File 2 join type

LEFT_OUTER_JOIN

File 1 and File 3 join type

LEFT_OUTER_JOIN

Files delimiter

null

File 1 regex

null

File 1 join headers

null

File 2 regex

null

File 2 join headers

null

File 3 regex

null

File 3 join headers

null

Joined filename

joinfile_now():format('yyyyMMddHHmmss').csv. Uses a timestamp in the format yyyyMMddHHmmss.

Join use case

NONE

File 1 headers

null

File 1 is headerless

false

File 2 headers

null

File 2 is headerless

false

File 3 is headerless

false

File 3 headers

null

Merge based on name

false

File 1 template

null

File 2 template

null

File 3 template

null

Use alphabetical sort

false

Define-headers-and-transform-data
Type: transform_header_data

Output headers order

null

Output file delimiter

,

Output filename

null

Headers mapping

{}. No header remapping is configured.

Is headerless

false

Headerless mapping

null

Encrypt-data
Type: encrypt_content

Encryption algorithm

PGP

Public key file

Redacted

Public key user ID

null

Is enabled

false

Connect-to-destination
Type: sftp_write

Hostname

data.capillarydata.com

Username

Not configured

Remote path

null

Create remote directory

false

Conflict resolution

IGNORE

Zip files

false

Port

21

Output filename

${'${filename }'}.
Uses the source filename.

Private key path

null

Key passphrase

null

SFTP to SFTP merge 3 files join with encrypt and decrypt

Downloads three files from an SFTP server, decrypts them, unzips, joins, remaps headers, encrypts the output, zips, and pushes it to an SFTP server.

Use case

A brand picks up encrypted customer data exports from an SFTP location, generated by the Data Export Framework in Insights+. The brand needs to merge three files, secure the output with encryption, and deliver it to a destination SFTP folder. This template was introduced to give brands a secure, generic way to migrate files between SFTP locations with both decryption and encryption support.

Block configuration

The following table lists the blocks in the SFTP to SFTP Merge 3 Files Join with Encrypt and Decrypt template, describes what each block does, and provides the configured values for each field.

Block Name

Configuration Field

Configured Value

Connect-to-source
Type: sftp_read

Hostname

data.capillarydata.com

Username

null

Source Directory

/tmp/

Filename Pattern

.*.csv. Matches all CSV files.

Processed Directory

null

Unzip Files

false

API Error File Path

null

Search Directory Recursively

false

Port

22

File Delimiter

,

Report Status Code

all

Decrypt-data
Type: decrypt_content

Encryption Algorithm

PGP

Private Key File

Redacted

Private Passphrase

Redacted

Is Enabled

false

Ok-file
Type: ok_file_3

Join-data
Type: three_join

File 1–2 Join Type

LEFT_OUTER_JOIN

File 1–3 Join Type

OUTER_JOIN

Files Delimiter

,

File 1 Regex

merge.*.csv

File 1 Join Headers

mobile

File 2 Regex

push.*.csv

File 2 Join Headers

mobile

File 3 Regex

jointx.*.csv

File 3 Join Headers

mobile

Joined Filename

merged3_now():format('yyyy-MM-dd').csv

Join Use Case

NONE

File 1 Is Headerless

false

File 1 Headers

null

File 2 Is Headerless

false

File 2 Headers

null

File 3 Is Headerless

false

File 3 Headers

null

Merge Based on Name

false

File 1 Template

File_1_{'<common>'}.csv

File 2 Template

File_2_{'<common>'}.csv

File 3 Template

File_3_{'<common>'}.csv

Use Alphabetical Sort

false

Rebuild-headers
Type: transform_header_data

Output Headers Order

null

Output File Delimiter

,

Output Filename

merge_now():format('yyyy-MM-dd').csv

Headers Mapping

{'{"source":"source","loyaltyType":"loyaltyType", "accountId":"accountId", "identifierType":"identifierType", "identifierValue":"identifierValue" ,"mobile":"mobile", "wechat":"wechat","gender":"gender"}'}

Is Headerless

false

Headerless Mapping

null

Encrypt-data
Type: encrypt_content

Encryption Algorithm

PGP

Public Key File

Redacted

Public Key User ID

null

Is Enabled

false

Connect-to-destination
Type: sftp_write

Hostname

data.capillarydata.com

Username

capillary

Password

Redacted

Remote Path

null

Create Remote Directory

true

Conflict Resolution

IGNORE

Zip Files

true

Port

22

Output File Name

${'${filename }'}. Uses the source filename.

Private Key Path

Redacted

Key Passphrase

Redacted

SFTP to SFTP merge 4 files join with encrypt and decrypt

Downloads four files from an SFTP server, decrypts them, unzips, joins, remaps headers, encrypts the output, zips, and pushes it to an SFTP server.

Use case

A brand consolidates four encrypted source files into a single encrypted output and delivers it to a destination SFTP location. This template handles all steps from decryption through to re-encryption and transfer in one scheduled run.

Block configuration

The following table lists the blocks in the SFTP to SFTP Merge 4 Files Join with Encrypt and Decrypt template, describes what each block does, and provides the configured values for each field.

Block NameConfiguration FieldConfigured Value
Connect-to-source
Type: sftp_read
Hostnamedata.capillarydata.com
Usernamenull
Source Directory/tmp/
Filename Pattern.*.csv. Matches all CSV files.
Processed Directorynull
Unzip Filesfalse
API Error File Pathnull
Search Directory Recursivelyfalse
Port22
File Delimiter,
Report Status Codeall
Decrypt-data
Type: decrypt_content
Encryption AlgorithmPGP
Private Key FileRedacted
Private PassphraseRedacted
Is Enabledfalse
Ok-file
Type: ok_file_3
Join-data
Type: four_join
File 1–2 Join TypeOUTER_JOIN
File 1–3 Join TypeOUTER_JOIN
File 1–4 Join TypeOUTER_JOIN
Files Delimiter,
File 1 Regexone.*.csv
File 1 Join Headersmobile
File 2 Regextwo.*.csv
File 2 Join Headersmobile
File 3 Regex3.*.csv
File 3 Join Headersmobile
File 4 Regex4.*.csv
File 4 Join Headersmobile
Joined Filenamemerged4files_now():format('yyyy-MM-dd').csv
File 1 Is Headerlessfalse
File 1 Headersnull
File 2 Is Headerlessfalse
File 2 Headersnull
File 3 Is Headerlessfalse
File 3 Headersnull
File 4 Is Headerlessfalse
File 4 Headersnull
Use Alphabetical Sortfalse
Merge Based on Namefalse
File 1 TemplateFile_1_{'<common>'}.csv
File 2 TemplateFile_2_{'<common>'}.csv
File 3 TemplateFile_3_{'<common>'}.csv
File 4 TemplateFile_4_{'<common>'}.csv
Rebuild-headers
Type: transform_header_data
Output Headers Ordernull
Output File Delimiter,
Output Filenamemerge_now():format('yyyy-MM-dd').csv
Headers Mapping{'{"source":"source","loyaltyType":"loyaltyType","accountId":"accountId","identifierType":"identifierType","identifierValue":"identifierValue","mobile":"mobile","wechat":"wechat","gender":"gender"}'}
Is Headerlessfalse
Headerless Mappingnull
Encrypt-data
Type: encrypt_content
Encryption AlgorithmPGP
Public Key FileRedacted
Public Key User IDnull
Is Enabledfalse
Connect-to-destination
Type: sftp_write
Hostnamedata.capillarydata.com
Usernamecapillary
PasswordRedacted
Remote Pathnull
Create Remote Directorytrue
Conflict ResolutionIGNORE
Zip Filestrue
Port22
Output File Name${'${filename }'}. Uses the source filename.
Private Key PathRedacted
Key PassphraseRedacted

SFTP to SFTP transfer

Transfers files from one SFTP server to another. Supports optional encryption and decryption as part of the transfer.

Use case

A brand needs to move files generated by the Data Export Framework in Insights+ from a Capillary SFTP location to a destination SFTP server managed by a partner or internal team. When data security is required, the template can decrypt the source file and encrypt the output before delivery. Encryption and decryption are both optional and can be used independently or together.

Block configuration

The following table lists the blocks in the SFTP to SFTP Transfer template, describes what each block does, and provides the configured values for each field.

Block NameConfiguration FieldConfigured Value
Connect-to-source
Type: sftp_read
Hostnamedata.capillarydata.com
Usernamenull
Source Directory/tmp/
Filename Pattern.*.csv. Matches all CSV files.
Processed Directorynull
Unzip Filesfalse
API Error File Pathnull
Search Directory Recursivelyfalse
Port22
File Delimiter,
Report Status Codeall
Decrypt-data
Type: decrypt_content
Encryption AlgorithmPGP
Private Key FileRedacted
Private PassphraseRedacted
Is Enabledfalse
Data-Validation-Block
Type: databricks_validation
Databricks Job IDNot configured
Is Enabledfalse
Encrypt-data
Type: encrypt_content
Encryption AlgorithmPGP
Public Key FileRedacted
Public Key User IDnull
Is Enabledfalse
hash-csv-fields
Type: hash_csv_columns
Enabledfalse
Hashing AlgorithmSHA-256
Headers to be Hashednull. No columns are specified.
Delimiter,
Connect-to-destination
Type: sftp_write
Hostnamedata.capillarydata.com
Usernamecapillary
PasswordRedacted
Remote Pathnull
Create Remote Directorytrue
Conflict ResolutionIGNORE
Zip Filestrue
Port22
Output File Name${'${filename } '}. Uses the source filename.
Output File Name${filename} . Uses the source filename.
Private Key PathRedacted

SFTP to SFTP with headers definition

Downloads a single file from an SFTP server, unzips it, remaps or defines column headers, zips the output, and pushes it to an SFTP server.

Use case 1

A file named abc.csv is being transferred from the Capillary server to a brand's server. The columns have headers named Transaction_value and Bill_ID. The brand requires the file to arrive with column names TAmount and Bill_No instead. This template renames the headers during transfer without changing the underlying data.

Use case 2

A file named abc.csv is being transferred from the Capillary server to a brand's server. The columns in the file do not have header names. The brand requires the output file to include column headers. This template adds the defined header names to the file during transfer.

Block configuration

The following table lists the blocks in the SFTP to SFTP with Headers Definition template, describes what each block does, and provides the configured values for each field.

Block NameConfiguration FieldConfigured Value
Connect-to-source
Type: sftp_read
Hostnamedata.capillarydata.com
Usernamenull
Source Directory/tmp/
Filename Pattern.. Matches all files.
Processed Directorynull
Unzip Filesfalse
API Error File Pathnull
Search Directory Recursivelyfalse
Port22
File Delimiter,
Report Status Codeall
Ok-file
Type: ok_file_3
Decrypt-data
Type: decrypt_content
Encryption AlgorithmPGP
Private Key FileNot configured
Private PassphraseNot configured
Is Enabledfalse
Define-headers-and-transform-data
Type: transform_header_data
Output Headers Ordernull
Output File Delimiter,
Output Filenamenull
Headers MappingNot configured
Is Headerlessfalse
Headerless Mappingnull
Encrypt-data
Type: encrypt_content
Encryption AlgorithmPGP
Public Key FileNot configured
Public Key User IDnull
Is Enabledfalse
Connect-to-destination
Type: sftp_write
Hostnamenull
UsernameNot configured
PasswordNot configured
Remote Pathnull
Create Remote Directoryfalse
Conflict ResolutionIGNORE
Zip Filesfalse
Port22
Output File Name${'${filename } '}. Uses the source filename.
Private Key PathNot configured
Key PassphraseRedacted

SFTP to FTP with headers definition

Downloads a single file from an SFTP server, unzips it, remaps or defines column headers, zips the output, and pushes it to an FTP server.

Use case

A brand transfers a single file to a partner system that accepts data only via FTP and requires specific column header names. This template remaps or adds headers during the transfer to match the partner's expected format.

Block configuration

The following table lists the blocks in the SFTP to FTP with Headers Definition template, describes what each block does, and provides the configured values for each field.

Block NameConfiguration FieldConfigured Value
Connect-to-source
Type: sftp_read
Hostnamedata.capillarydata.com
Usernamenull
Source Directory/tmp/
Filename Pattern.*.csv. Matches all CSV files.
Processed Directorynull
Unzip Filesfalse
API Error File Pathnull
Search Directory Recursivelyfalse
Port22
File Delimiter,
Report Status Codeall
Define-headers-and-transform-data
Type: transform_header_data
Output Headers Ordernull
Output File Delimiter,
Output Filenamenull
Headers MappingNot configured
Is Headerlessfalse
Headerless Mappingnull
Connect-to-destination
Type: sftp_write
Hostnamedata.capillarydata.com
UsernameNot configured
Remote Pathnull
Create Remote Directoryfalse
Conflict ResolutionIGNORE
Zip Filesfalse
Port21
Output File Name${'${filename }'}. Uses the source filename.
Private Key Pathnull
Key Passphrasenull

FTP to S3

Transfers files from an FTP or SFTP server to an AWS S3 bucket.

Use case

A brand stores processed output files on an FTP server and needs to archive them in an S3 bucket for downstream processing or long-term storage. This template picks up the file from FTP and uploads it to the configured S3 bucket and path in a single scheduled operation.

Block configuration

The following table lists the blocks in the FTP to S3 template, describes what each block does, and provides the configured values for each field.

Block NameConfiguration FieldConfigured Value
Connect-to-source
Type: sftp_read
Hostnamedata.capillarydata.com
Usernamenull
Source directory/tmp/
Filename pattern.*.csv. Matches all CSV files.
Processed directorynull
Unzip filesfalse
API error file pathnull
Search directory recursivelyfalse
Port22
File delimiter,
Report status codeall
Connect-to-destination
Type: s3_write
S3 object key${'${filename }'}. Uses the source filename.
S3 bucket namenull
Content typeapplication/octet-stream
Access keynull
Secret keyRedacted
AWS regionus-east-1
AWS credentials provider servicenull

CSV to XML conversion

Converts CSV files to XML format and delivers the converted file to a destination SFTP server. Supports optional encryption of the output file.

Use case

A data analyst receives data from various departments as CSV files containing fields such as product ID, product name, and price. The downstream system ingests data only in XML format. XML's hierarchical structure also makes the data easier for both humans and automated systems to interpret. Using this template, the analyst converts all CSV files to XML on a schedule, removing the need for manual conversion before delivery.

Block configuration

The following table lists the blocks in the CSV to XML conversion template, describes what each block does, and provides the configured values for each field.

Block NameConfiguration FieldConfigured Value
Connect-to-source
Type: sftp_read
Hostnamedata.capillarydata.com
Source Directory/tmp/
Filename Pattern.*.csv. Matches all CSV files.
Processed directorynull
Unzip filesfalse
API error file pathnull
Search directory recursivelyfalse
Port22
Report Status Codeall
Decrypt-data
Type: decrypt_content
Encryption AlgorithmPGP
Private key fileRedacted
Private passphraseRedacted
Is enabledfalse
Ok-file
Type: ok_file_3
CSV-to-XML-converter
Type: convert_csv_to_xml
XML top<xml>
XML file nameoutput.xml
XML repeating component<repeat></repeat>
Input file delimiter,
XML bottom</xml>
Encrypt-data
Type: encrypt_content
Encryption algorithmPGP
Public key fileRedacted
Is enabledfalse
Connect-to-destination
Type: sftp_write
Hostnamedata.capillarydata.com
Usernamenull
PasswordRedacted
Destination directory/tmp/
Port22
Conflict strategyIGNORE
Retain source filenametrue