Load Data into Customer Data Platform

The Ingestion API provides a RESTful interface that supports both streaming and bulk interaction patterns for programmatically loading data into Salesforce CDP. Data is processed asynchronously on an hourly cadence.

What’s the Difference between Bulk and Streaming Ingests APIs?

If you're wondering about which API to use, it helps if you consider where the data is coming from and the problem you’re trying to solve.

Bulk API
  • Moving large amounts of data on a daily, weekly, or monthly schedule.
    • Legacy systems where you can only export data in off-peak hours.
    • A new Salesforce CDP org that you want to backfill with 30/60/90/X days of data.
Streaming API
  • Small micro-batches of records being updated in near-real time.
    • Source system built on modern streaming architectures.
    • Change data capture events.
    • Consuming data from webhooks.

Example

Let’s imagine you’re an integrator working for Northern Trail Outfitters (NTO). You’ve been tasked with loading the runner profiles and activity logs captured from their Track My Run mobile app into Salesforce CDP. The marketer needs the last 90 days of profile and event data plus all new and updated data on a go-forward basis.

In this scenario, the database architect (DBA) could export the last 90 days of profile and activity from the database to CSV files. Then you could load the data into Salesforce CDP via the Bulk API. Using the Bulk API is meant for one-time operations to initialize the data in Salesforce CDP. Afterwards, you could then synchronize any changes to those tables since the export, new and updated profiles and activity data, in micro-batches via the streaming API. These updates can be performed as frequently as you can capture the deltas from the source system.