> ## Documentation Index
> Fetch the complete documentation index at: https://loops.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrigger a Workflow

> Backfill contacts into a workflow.

> [!WARNING]
>
> This is a temporary workaround while we build native backfill. Please let us know you want native backfill so we can prioritize it.

## When to use this

* You have an existing workflow that should have run for some contacts but didn’t.
* You’re comfortable exporting and re-importing a contact list.

## What you’ll do (high level)

1. Duplicate the original workflow.
2. Create a one-off contact property (e.g., `backfill_welcome_sep2025`).
3. Change the duplicate workflow’s trigger to “Contact updated” based on that property.
4. Start the duplicated workflow.
5. Export the intended audience.
6. Add the property to the CSV for those contacts.
7. Re-import the CSV to update contacts and trigger the workflow.

## Step-by-step

**1. Duplicate the workflow**

Open the workflow you want to retroactively trigger.

Use **Duplicate** to create a copy. Rename it clearly (e.g., “Welcome Backfill (Sep 2025)”).

**2. Create a one-off contact property**

Add a new contact property to use exclusively for this backfill.

**Example:**
Boolean: `backfill_welcome_sep2025` (true/false)

Use a name that avoids collisions with any existing logic.

**3. Change the duplicate workflow’s trigger**

Select “Contact updated” as the trigger.

Set the criteria to:

* was any
* is equal to `true`

> [!TIP]
>
> For one-off backfills, set Trigger frequency to **One time** so a
> contact only enters once.

**4. Export the intended audience from the original workflow**

From the main audience table, [export the contacts](https://loops.so/docs/contacts/export-contacts.md) who should be backfilled.

**5. Prepare the CSV for re-import**

Open the CSV and add a new column with the property key you created.

Populate that column with `true` for every row you want to trigger.

Ensure the CSV still includes the primary identifier (either `email` or `userId`).

**6. Re-import to update contacts and trigger**

Import the CSV from the **Import** button on the [Audience page](https://app.loops.so/audience).

Confirm the column mapping so your backfill property maps 1:1 to the new contact property.

Set the CSV import to [trigger workflows](https://loops.so/docs/add-users/csv-upload.md#trigger-workflows-via-csv) using the **Trigger workflows** toggle.

Start the import.

Your backfilled workflow will begin triggering immediately.

> [!WARNING]
>
> After the backfill completes, consider removing or resetting the temporary
> contact property to avoid accidental future triggers.


## Related topics

- [Triggering workflows](https://loops.so/docs/workflows/triggers.md)
- [Workflows](https://loops.so/docs/workflows.md)
- [Pausing workflows](https://loops.so/docs/workflows/pausing.md)
- [Delete a workflow](https://loops.so/docs/api-reference/delete-workflow.md)
