# Bulk Upload Promo Codes

If you want to create multiple promo codes, use the **Bulk Upload** feature to upload a CSV, XLS, or, XLSX file with your promo code data.

Refer to the *Promo code bulk upload reference* tables below for help in structuring this file. To ensure the upload is successful, keep the file size under 1MB for XLS/XLSX or 5MB for CSV. Validation is based strictly on file size, so there is no specific limit on the number of rows.

{% hint style="warning" %}
**Warning:** Make sure the column headers in your CSV/XLS file exactly match the column names below (case-sensitive and spaces), otherwise your file upload could be rejected.
{% endhint %}

{% hint style="info" %}
**Example:** The example below is for an example promo code `10PEROFF`.

```programlisting
Promo Code,Campaign Id,Media Id,Type,Credit Rule,Match Mode,Deal
Name10PEROFF,4321,1299679,TRACKING,ALWAYS,LI,
```

{% endhint %}

#### Bulk upload tracking promo codes

1. From the left navigation menu, select ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-230534471fef5f40808e921e41ee44e4a06ded03%2Fe6cb9548999afdc1ed3ce4942e4cb5b45b5cecbd323267aac2a7cd1915fccc09.svg?alt=media) **\[Engage]** → **Content** → **Promo Codes**.
2. On the *Promo Codes* screen, select **Bulk Upload**.
3. Select **Choose File** and then locate and then select the Excel / CSV file with the promo codes that you want to upload.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><strong>Note:</strong> Ensure your file uses the required column format shown in the table below.</p></div>

   | Column            | Type    | Required | Description                                                                                                                                                        |
   | ----------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
   | Promo Code        | String  | Yes      | The unique promo code to be assigned.                                                                                                                              |
   | Program Id        | Integer | Yes      | The unique impact.com Program Id to which the ad belongs.                                                                                                          |
   | Media Id          | Integer | Yes      | The impact.com Media Id to which the promo code will be assigned. This can be Partner Id or Media Source Id.                                                       |
   | Type              | String  | Yes      | <p>The promo code type. Allowed values:</p><p><code>TRACKING</code></p>                                                                                            |
   | Credit Rule       | String  | Yes      | <p>The promo code credit rule. Allowed values:</p><p><code>ALWAYS</code></p><p><code>INVOLVED</code></p><p><code>WINNER</code></p>                                 |
   | Match Mode        | String  | Yes      | <p>The promo code match mode. Allowed values:</p><p><code>LI</code> (Exact/Literal)</p><p><code>RE</code> (Regex/Regular Expression)</p>                           |
   | Deal Id           | Integer | No       | The unique ID of the deal this promo code should be associated with. The deal must already exist in your program.                                                  |
   | Active Start Date | Date    | No       | Gives you the ability to schedule this restriction. This is an [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) Date. Example format: `2013-06-30T00:00:00-07:00` |
   | Active End Date   | Date    | No       | This is an ISO8601 Date. Example format: `2013-06-30T00:00:00-07:00`                                                                                               |
   | Timezone          | String  | No       | Timezone is derived from the start date, but if you want to override it with a specific timezone, enter the full name here, e.g., `America/New_York`.              |

   Each uploaded tracking promo code can only be assigned to 1 partner or media source through the `Media Id` field. If another partner promotes that code, impact.com flags the resulting conversion as an invalid conversion and reverses it.
4. Select **Next**.
5. Review the list of promo codes that will be uploaded. If the details are correct, select **Accept & Create Promo Codes**.
6. If the upload is successful, the new *Tracking promo codes* are created and listed on the *Promo Codes* screen.

#### Bulk upload restricted promo code fields

{% hint style="info" %}
**Note:** As part of ongoing platform improvements, we are retiring the *Restricted Promo Codes* feature at the end of February. Please review your current configurations and plan accordingly.
{% endhint %}

Before you begin, understand the difference between the two restriction types:

* **White List**
  * Purpose: Define a list of promo codes that must be used in order for a Partner to get credit for a sale.
  * This is recommended if your authorized list of promo codes is smaller than your unauthorized list.
* **Black List**
  * Purpose: Define a list of promo codes that, if used will not credit a sale to a Partner.
  * This is recommended if your unauthorized list of promo codes is smaller than your authorized list.

**Step 1: Choose the restriction type**

1. From the left navigation menu, select ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-230534471fef5f40808e921e41ee44e4a06ded03%2Fe6cb9548999afdc1ed3ce4942e4cb5b45b5cecbd323267aac2a7cd1915fccc09.svg?alt=media) **\[Engage]** → **Content** → **Promo Codes**.
2. On the *Promo Codes* screen, select **Create Promo Code** ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-c2cb550b55c51ea1eeff0acbd6f437a03b621a2c%2F60d033ae8a04c14498d5229c3c0160ac05feea7f605dbd770741793c900469f0.svg?alt=media) **\[Drop-down menu]** → **Restricted**.
3. On the *Promo Codes Restrictions* page, select ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-6282f271b7521383385339243690b303086736d9%2F3b5a585dd2895bdf1c30d1236c72ba590dddd18717863b27074c8d313d05ae20.svg?alt=media) **Setup Promo Code Restrictions**.
4. The Promo Code Restrictions page appears, displaying two columns for setup:
   * Optionally, select ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-6282f271b7521383385339243690b303086736d9%2F3b5a585dd2895bdf1c30d1236c72ba590dddd18717863b27074c8d313d05ae20.svg?alt=media) **Setup White List**, to upload white listed promo codes.
   * Optionally, select ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-6282f271b7521383385339243690b303086736d9%2F3b5a585dd2895bdf1c30d1236c72ba590dddd18717863b27074c8d313d05ae20.svg?alt=media) **Setup Black List**, to upload black listed promo codes.

**Step 2: Upload your file**

1. Select **Choose file**, then locate and select the Excel / CSV file with restricted promo codes that you want to upload.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><strong>Note:</strong> Ensure your file uses the required column format shown in the table below.</p></div>

   | Column            | Type    | Required | Description                                                                                                                                           |
   | ----------------- | ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
   | Promo Code        | String  | Yes      | The unique promo code to be assigned.                                                                                                                 |
   | Program Id        | Integer | Yes      | The unique impact.com Program Id to which the ad belongs.                                                                                             |
   | Type              | String  | Yes      | <p>The promo code type. Allowed value:</p><p><code>RESTRICTED</code></p>                                                                              |
   | Match Mode        | String  | Yes      | <p>The promo code match code. Allowed values:</p><p><code>LI</code> (Exact/Literal)</p><p><code>RE</code> (Regex/Regular Expression)</p>              |
   | Active Start Date | Date    | No       | Gives you the ability to schedule this restriction. This is an ISO8601 Date. Example format: `2013-06-30T00:00:00-07:00`.                             |
   | Active End Date   | Date    | No       | This is an ISO8601 Date. Example format: `2013-06-30T00:00:00-07:00`                                                                                  |
   | Timezone          | String  | No       | Timezone is derived from the start date, but if you want to override it with a specific timezone, enter the full name here, e.g., `America/New_York`. |
2. Select **Next**.
3. Review the list of restricted codes that are displayed on the *Promo Code Bulk Upload* page.
   * Optionally, to view only entries that contain errors, select **Show errors only**.
4. If the details are correct, select **Accept & Create Promo Codes**.

**Step 3: Add media partner exceptions**

1. On the *Media Partner Controls* page, choose how the restriction rules will apply:
   1. Optionally, select **Apply to all partners**, if you want this rule to apply to everyone.
   2. Optionally, select **Allow certain partners to bypass this rule and get credited for restricted promo codes**.

      If you choose to allow a bypass, select **Lookup** and then select and **Add** the specific partners from the list.
2. Select **Save & Activate**.
3. The new Restricted Promo code rule is activated and the uploaded codes are applied to the chosen *White List* or *Black List*.


---

# Agent Instructions: 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:

```
GET https://help.impact.com/brand/what-would-you-like-to-learn-about/platform-features/promo-codes/bulk-upload-promo-codes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
