Skip to main content

What is the Outbound Flow?

The outbound flow lets you push JSON data into FileFeed through the API instead of uploading files via SFTP. It uses the same pipeline infrastructure — schemas, mappings, transforms, webhooks — but the entry point is an HTTP API call rather than a file drop.

SFTP (Inbound)

The sender uploads a file to the connection’s SFTP space → FileFeed detects and processes it.

API (Outbound)

Your backend pushes JSON data via API → FileFeed processes it.

When to use

  • You already have the data in your backend and want to push it into a pipeline
  • You don’t want to manage SFTP connections for a particular data source
  • You need programmatic control over when data enters the pipeline
  • You’re building an integration that produces data (not receives files)

Prerequisites

Before using the outbound flow, you need:
  1. A Connection (formerly Client) — created in the dashboard or via API. Outbound uploads reference it by its human-readable name.
  2. A Schema — defining the target data structure
  3. An Outbound Pipeline — with direction: "outbound", linking the connection and schema with field mappings
  4. An API key — user-type key for authentication
The pipeline must have direction set to "outbound". Inbound pipelines will be rejected by the upload endpoints.

Architecture

How it works

The outbound upload uses a multipart flow similar to AWS S3 multipart uploads:

Step 1: Initialize

Create an upload session specifying the connection, pipeline, number of parts, and optional filename and output settings.
Pass the connection’s human-readable name as connectionName — the same name you created the connection with (e.g. 'Acme Corp'). The legacy clientName field resolves by that same connection name and is deprecated; prefer connectionName. Output resolution: outputFormat → extension of outputFilename → input filename (defaults to JSON).

Step 2: Upload parts

Upload each part as a JSON array of objects. Parts are numbered 1 through totalParts.
Each part’s data must be a JSON array. Parts can have different sizes. The objects should contain the source field names that match your pipeline’s field mappings. Static-value mappings ({ target, value }) need no source field in your data — FileFeed writes the constant into the output automatically.

Step 3: Complete

Finalize the upload by listing all parts. FileFeed combines them into one file, stores it in S3, and triggers pipeline processing.

Step 4: Consume results

After processing completes, a pipeline run is created. Outbound runs reach the terminal status delivered once the output has been written to its destination (inbound runs use completed). Use the standard pipeline runs API to fetch results:

Quick path: uploadJson helper

For most use cases, the SDK provides a convenience method that handles chunking, part uploads, and completion in one call:

Checking upload status

At any point during the upload, you can check progress:

Aborting an upload

Cancel an in-progress upload and clean up temporary parts:
After aborting:
  • All temporary part data is deleted from storage
  • The session is marked as aborted
  • Further uploads to this session are rejected

API endpoints

MethodEndpointDescription
POST/outbound/uploadsInitialize upload session
PUT/outbound/uploads/:uploadId/parts/:partNumberUpload one part
POST/outbound/uploads/:uploadId/completeComplete and trigger processing
POST/outbound/uploads/:uploadId/abortAbort and cleanup
GET/outbound/uploads/:uploadIdGet upload status

Upload states

StateMeaning
initiatedSession created, no parts uploaded yet
uploadingAt least one part has been uploaded
completedAll parts combined, processing triggered
abortedUpload cancelled, parts cleaned up

Integration checklist

  • Create Connection with SFTP credentials (its name is the connectionName you pass to outbound uploads)
  • Define Schema (target fields and validation)
  • Create Pipeline with direction: "outbound" (link connection + schema, define mappings)
  • Get API key (Dashboard → My Account → Security Settings)
  • Push data using uploadJson() or the manual multipart flow
  • Poll or listen for pipeline run completion
  • Fetch processed data and persist to your system
  • Acknowledge the pipeline run
The outbound flow uses the same pipeline runs, webhooks, and data retrieval as the SFTP flow. The only difference is how data enters the system.