> For the complete documentation index, see [llms.txt](https://help.blings.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.blings.io/role-guides/developer/getting-started/how-to-connect-my-data-to-the-sdk/spreadsheet-data-integration.md).

# Spreadsheet Data Integration

Spreadsheet or CSV integration is useful for manual campaigns, controlled test batches, demos, and one-time sends where a live CRM or API connection is not needed.

Start in Platform Integration before preparing the file:

{% content-ref url="/pages/x3JPpFV8w1i0Dwwm10bj" %}
[Integration](/apps/blings-platform/integration.md)
{% endcontent-ref %}

Use Integration to confirm the Dynamic Data fields and copy the Spreadsheet or CSV instructions generated for the project. Use Simulation separately to preview representative rows.

{% content-ref url="/pages/VkH17x1J2SH1VmvzEgwU" %}
[Simulation](/apps/blings-platform/simulation.md)
{% endcontent-ref %}

## How It Works

1. **Confirm the schema**\
   Open **Settings -> Dynamic Data** and record the exact field names the MP5 expects.
2. **Create sample Simulation profiles**\
   Test a few representative records before building the full spreadsheet. Include missing values, long text, alternate segments, and media URLs when those cases matter.
3. **Prepare the CSV**\
   Each row should represent one viewer, contact, account, product, or other record. Use column headers that match the project field names.
4. **Include a stable key**\
   Use a unique ID such as contact ID, email, account ID, or another launch-approved identifier when the workflow requires row lookup.
5. **Upload or connect the file**\
   Follow the Spreadsheet or CSV instructions shown in Platform for the project.
6. **Run an end-to-end test**\
   Preview or open the generated delivery path for several rows and compare the result with the matching Simulation profiles.

<figure><img src="/files/1Lm62VY79IasRlde0Bqz" alt="Spreadsheet data used as a source for Blings personalization"><figcaption></figcaption></figure>

## CSV Structure

```csv
contact_id,first_name,plan,profile_image,renewal_date
12345,Jordan,Premium,https://example.com/jordan.jpg,2026-12-31
67890,Taylor,Standard,https://example.com/taylor.jpg,2026-10-15
```

## When to Use This Method

| Use spreadsheet data when...                                                      | Choose another method when...                                          |
| --------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| The campaign list is fixed before launch.                                         | Data changes at view time.                                             |
| You need a quick proof of concept or demo.                                        | Personalization depends on authentication or backend logic.            |
| The data can be safely uploaded or shared according to the customer's data rules. | Sensitive data should stay inside the customer's CRM, backend, or app. |
| Updates can be handled by replacing or refreshing the file.                       | Updates must happen continuously or in real time.                      |

## QA Checklist

* Column names match the project Dynamic Data field names.
* Required fields are populated or have defined fallbacks.
* URLs point to accessible images, videos, audio files, or links.
* Dates and numbers use the expected format.
* Test rows cover the same scenarios used in Simulation.
* The final delivery URL or generated output is tested before the campaign is sent.

For automated or real-time data flows, use [Custom API Integration](/role-guides/developer/getting-started/how-to-connect-my-data-to-the-sdk/custom-api-integration.md) or [CRM data integration](/role-guides/developer/getting-started/how-to-connect-my-data-to-the-sdk/crm-data-integration.md).
