# Setup Guide

<p>This guide will help you set up Klaviyo Bulk Upload as a destination in the RudderStack dashboard. It also lists the configuration settings required to correctly send data from the supported sources to Klaviyo.</p>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="setup">Setup</h2><p>In your <a href="https://app.rudderstack.com/" >RudderStack dashboard</a>, add a source. Then, from the list of destinations, select <strong>Klaviyo Bulk Upload</strong>.</p>
<!-- end-chunk -->
<!-- begin-chunk -->
<h3 id="connection-settings">Connection settings</h3><table>
  <thead>
      <tr>
          <th>Setting</th>
          <th>Description</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Name</td>
          <td>Assign a name to uniquely identify your destination in RudderStack.</td>
      </tr>
      <tr>
          <td>Private API Key</td>
          <td>Enter the <a href="#faq" >Klaviyo private API key</a> by navigating to <strong>Settings</strong> &gt; <strong>API Keys</strong>. <br /><br />
<blockquote class="warning">
  <div class="tip-quote">
    
    <div class="tip-text">The private API key must have the necessary permissions (<code>profiles:write</code> and <code>lists:write</code> scopes) to send the data successfully.</div>
  </div>
</blockquote></td>
      </tr>
  </tbody>
</table>
<!-- end-chunk -->
<!-- begin-chunk -->
<h3 id="configuration-settings">Configuration settings</h3><table>
  <thead>
      <tr>
          <th>Setting</th>
          <th>Description</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>List ID</td>
          <td>Enter the default list ID to which you want to add and subscribe users.</td>
      </tr>
  </tbody>
</table>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="next-steps">Next steps</h2><ul>
<li><a href="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/klaviyo-bulk-upload/connect-retl-source/" >Connect Reverse ETL source to Klaviyo Bulk Upload</a></li>
</ul>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="faq">FAQ</h2><!-- end-chunk -->
<!-- begin-chunk -->
<h4 id="which-permissions-are-needed-to-send-data-to-the-klaviyo-bulk-upload-destination-correctly">Which permissions are needed to send data to the Klaviyo Bulk Upload destination correctly?</h4><p>For bulk import jobs in Klaviyo, you need to create a private API key with the following scopes:</p>
<ul>
<li><code>profiles:write</code></li>
<li><code>lists:write</code></li>
</ul>
<p>Follow these steps to create a new private API key with the above scopes:</p>
<ol>
<li>Go to <strong>Settings</strong> &gt; <strong>API Keys</strong>.</li>
<li>Click <strong>Create Private API Key</strong>.</li>
<li>Name the key and choose the <strong>Custom Key</strong> option from the access level options.</li>
<li>Select <strong>Read/Write Access</strong> for the <strong>List</strong> and <strong>Profiles</strong> API scopes.</li>
</ol>

<figure class="image--main "  >
    <a 
         href="/docs/images/event-stream-destinations/klaviyo-custom-private-api-key.webp"
        
        >
        <img src="/docs/images/event-stream-destinations/klaviyo-custom-private-api-key.webp" 
         
         
         
        decoding="async" loading="lazy" class="img-shortcode"/>
    </a>
    
</figure>

<ol start="5">
<li>Click <strong>Create</strong>.</li>
<li>Specify this key in the <a href="#connection-settings" >Private API key</a> setting.</li>
</ol>
<br />
