> 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).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.blings.io/role-guides/developer/getting-started/how-to-connect-my-data-to-the-sdk/spreadsheet-data-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
