# Connect Reverse ETL Source to Klaviyo Bulk Upload


This guide takes you through the steps to connect a Reverse ETL source to the Klaviyo Bulk Upload destination.

## Set up connection 

{{< warning >}}
**The Reverse ETL feature supports only source-driven pipeline configuration.**

Make sure you have [set up a RETL source]({{< ref "sources/reverse-etl/_index.md" >}}) and connected it to your Klaviyo Bulk Upload destination before following the below steps.
{{< /warning >}}

1. [Confirm the connection settings]({{< ref "destinations/reverse-etl-destinations/klaviyo-bulk-upload/setup-guide.md#connection-settings" >}}) for Klaviyo Bulk Upload destination and click **Continue**.

2. In the [Data Mapping]({{< ref "data-pipelines/reverse-etl/developer-guides/visual-data-mapper.md" >}}) section, select the **Object** as **User Profiles** .
3. Specify the [Sync mode]({{< ref "data-pipelines/reverse-etl/developer-guides/sync-modes.md" >}}). RudderStack supports syncing to this destination only via the **Upsert** mode.
4. Toggle on **Use cursor column** to enable incremental syncs in **Upsert** mode and select the required **Cursor column** from the dropdown. See [Cursor Column Support]({{< ref "data-pipelines/reverse-etl/developer-guides/cursor-column-support.md#use-the-cursor-column-feature" >}}) for more information on this feature.
5. In **Choose identifier**, specify the warehouse column that RudderStack uses to identify your records.

{{< image src="images/event-stream-destinations/klaviyo-bulk-upload-2.webp" >}}

{{< info >}}
You can map this warehouse column either to the **User ID**, **ID**, or **Email** Klaviyo fields.
{{< /info >}}

6. Map other warehouse columns to specific Klaviyo Bulk Upload fields using the **Map fields** setting.

{{< image src="images/event-stream-destinations/klaviyo-bulk-upload-1.webp" >}}

{{< success >}}
You can also specify custom mappings for this destination by creating a custom field and mapping it to a warehouse column.

See [Create custom destination fields in Visual Data Mapper]({{< ref "data-pipelines/reverse-etl/developer-guides/visual-data-mapper.md#create-custom-destination-fields" >}}) for more information on this feature.
{{< /success >}}

## FAQ

#### Why can't I add a Reverse ETL source from the destination page?

The Reverse ETL feature supports only source-driven pipeline configuration. It means that you must configure a Reverse ETL source in RudderStack and then connect it to a new or existing destination. Note that this destination should not be connected to any other source.

See [Reverse ETL FAQ]({{< ref "data-pipelines/reverse-etl/developer-guides/faq.md" >}}) for more information.

<br />
