SFTP & CSV Upload

Uploading call recordings and metadata via SFTP with an accompanying CSV is the simplest way to integrate with Conversation Intelligence (CI). There's no API to build against — you only need to deliver audio files and a correctly structured CSV to an SFTP location, and Capacity handles the rest.

How It Works

Capacity polls an SFTP location on a scheduled basis, picking up any new audio files and their accompanying CSV. Each row in the CSV describes one call and points to its corresponding audio file. Once picked up, the audio and metadata are matched and ingested into CI.


SFTP Access

You can deliver files using either your own SFTP server or one hosted by Capacity.

OptionWhat's NeededAuthentication method
Capacity-Hosted SFTPCapacity provisions and issues you an SFTP hostusername and password or SSH keys
Your Own SFTPYou host the SFTPusername and password or SSH keys

Polling frequency 

This can be configured down to as little as every 30 minutes.


CSV File Structure

Formatting Rules

  • Comma-delimited, UTF-8 encoded
  • Header row is required, with exact column names — files without a matching header will fail to process
  • One row represents one call. You can deliver a single CSV covering many calls, or one CSV per call — either works
  • No limit on the number of rows per file

Required Fields

ColumnDescription/Accepted Values
callIdA unique identifier for the call
dateTimeDate and time of the call, in UTC
ISO 8601 format (e.g. 2026-08-06T14:32:00Z)
callDirectionInbound, Outbound, Internal
agentIdIdentifies the agent on the call. 
Email address is preferred, but any unique identifier is accepted
agnetFirstNameIdentifies the agent first name for easier recognition
agentLastNameIdentifies the agent last name for easier recognition
audioFileNameMust exactly match the delivered audio file name, including its extension

Optional Fields

Any additional column you include is automatically captured as metadata against the call — no extra configuration is needed. Common examples:

ColumnPurpose
masterIdLinks multiple Call IDs together into a single composite interaction — use this where a customer journey spans more than one recorded segment
customerNumberThe customer's phone number or account reference
campaignNameCampaign name or code/name
dispostionNameCall outcome/disposition code/name
teamNameUsed to segregate data — for reporting, filtering, or access control
...other...Captured automatically as call metadata for reporting and filtering

Retention

Once a CSV has been successfully processed, they can be purged automatically. Alternatively, retention can be set to delete files after a configured number of days, regardless of processing status. Let Capacity know which approach you'd prefer during setup.


Testing & Go-Live

Before switching over fully, it's recommended to deliver a small test batch of calls first to confirm the CSV structure and audio matching are working as expected.


What to Share with Capacity

ItemValue/Confirmed
SFTP hosting option
☐ Capacity-Hosted ☐ Own SFTP
SFTP username & password or SSH keys provided

Polling frequency required

CSV retention approach
☐ Purge after processing ☐ Delete after ___ days
Test batch scheduled
☐ Yes ☐ No

Was this article helpful?