# Create Bulk Cash Rewards with Advocate

While many rewards are triggered automatically by program rules (like a referral conversion), you may sometimes need to reward participants for manual or offline actions—such as completing a survey or winning a contest.

The **Bulk Rewards** import tool allows you to issue cash, points, or gift cards to multiple advocates at once by uploading a CSV file. This feature includes a dry run safety mechanism to ensure your data is correct before any funds are disbursed.

### Prepare Your Import File

{% hint style="success" %}
**Note**: If you make use of the global import settings, then you’d only need to submit a `userId` list.
{% endhint %}

To begin, you will need a CSV or JSONL file containing the list of users you wish to reward.

* **Required Columns**: Your file must minimally include `userId` to identify the user.
* **Optional Columns**: You can include reward details (e.g., amount, unit, type) in the file. Alternatively, we recommend setting these as *global defaults* in the platform during the import process to simplify your file.

#### File Columns Reference

<table data-header-hidden><thead><tr><th width="297.484375">Column</th><th>Description</th><th>Requirement</th></tr></thead><tbody><tr><td><code>userId</code></td><td>The unique ID of the user.</td><td><mark style="color:$danger;">Required</mark></td></tr><tr><td><code>assignedCreditInCurrencyBaseUnit</code></td><td>The amount to be rewarded (e.g., 50).</td><td>Conditional<br>(Not required if a global default is set)</td></tr><tr><td><code>rewardUnit</code></td><td>The unit of the reward (e.g., USD, POINTS).</td><td>Conditional<br>(Not required if a global default is set)</td></tr><tr><td><code>globalRewardKey</code></td><td>The key of a pre-configured reward to give.</td><td><p>Conditional<br>(Not required if a global default is set)</p><p><br></p></td></tr><tr><td><code>discountPercent</code></td><td>The amount to be rewarded as a discount</td><td>Conditional<br>(Not required if a global default is set)</td></tr><tr><td><code>dateScheduledFor</code></td><td>Pend the reward until this date.</td><td>Optional</td></tr><tr><td><code>uniqueId</code></td><td>A unique identifier for the transaction.</td><td><mark style="color:$success;">Recommended</mark><br>Used as a safety key to prevent duplicate rewards if the file is re-run.</td></tr><tr><td><code>customerNote</code></td><td>Add a note that will be visible to the customer.</td><td>Optional</td></tr><tr><td><code>internalNote</code></td><td>Add a note for internal use that the customer won’t be able to see.</td><td>Optional</td></tr></tbody></table>

{% stepper %}
{% step %}

#### Configure Import Settings

1. In the left navigation menu, select ![](/files/CDnwOBeIdds9r3Z6zTnO) **\[Engage] → Reporting → Imports & Exports**.
2. In the top-right corner, select **Import**.
3. Under *Import type*, select **Rewards**.

<div data-with-frame="true"><figure><img src="/files/GhROWdQtOJu66ROLAUK4" alt=""><figcaption></figcaption></figure></div>

**Set Pre-set Values (Global Defaults)**

To save time and reduce errors in your CSV file, you can define Pre-set values that apply to every row in your import.

* **Reward**: Choose a pre-configured reward or specify a manual unit (e.g., "Cash/USD").
* **Program**: Associate these rewards with a specific program for reporting purposes.
* **Reward Pending Duration**: ![](/files/OoA2qxPalfCYKZvmxuU6) **\[Toggle on]** to add a safety buffer (e.g., 30 days) before the reward is available to the user. This allows time for retractions if necessary.

{% hint style="success" %}
**Note**: If you set a value here (e.g., Reward Unit: USD), you do **not** need to include that column in your CSV file.
{% endhint %}
{% endstep %}

{% step %}

#### Upload and Dry Run

Because cash rewards are final and cannot be reversed, the system requires a dry run (test import) so you can confidently review the details before processing the rewards.

1. Under the *Upload your import users CSV or JSONL file* select **Choose File**.
2. Select **Run Test Import** to initiate the test state.
3. The system will process the file **without** creating rewards.

<div data-with-frame="true"><figure><img src="/files/t77v3OUPqV56WB9afeOM" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

#### Review and Finalize

Once the test run is complete, you will see a status entry in the Imports & Exports list. Emails may be sent as part of the review process (gift cards, payout configuration, etc.).

1. **Review**: If there are errors (indicated with ![](/files/BZVdij9PHHrAGHRetSAx) **\[Exclaimation]**), select **Download Error Report** to fix your file and try again. Also, select **Download Report** to get a record of all the rewards that will be created. Whether there is an error or not, it's recommended for reviewing.
2. **Confirm**: If the test is successful (indicated with a ![](/files/rNiaYMdsuAli6M8sFoHM) **\[Checkmark]**), select **Run Import**.
3. A confirmation modal will appear summarizing the total impact (e.g., “By running this import 412 rewards will be created"). Select **Run Import** to confirm and disburse the rewards.

If you decide not to proceed, you can simply cancel the run and then select Discard to delete the test run.

<div data-with-frame="true"><figure><img src="/files/kMQ5p5dOaDCqsXOlMvSA" alt=""><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}


---

# 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/advocate-program/advocate-rewards/create-bulk-cash-rewards-with-advocate.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.
