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

# ETL: Package Drafts

> How package drafts autosave your unsaved changes in the package designer, per user, until you publish them with Save Version.

## Overview

A package draft is a private, automatically saved working copy of a package. As you edit a package in the designer, your changes are saved to your draft roughly every two seconds. The draft never affects the running version of the package: jobs, schedules, and teammates continue to use the last saved version until you click **Save Version**.

Each user has their own draft per package. Your draft is private: teammates editing the same package work in their own drafts, and a package is only flagged as having unsaved changes for the user who made them.

## How It Works

| Behavior          | Details                                                                                                                     |
| :---------------- | :-------------------------------------------------------------------------------------------------------------------------- |
| Autosave timing   | Changes are saved to your draft about two seconds after you stop editing. Leaving the designer saves the draft immediately. |
| What is saved     | Components, connections, package variables, and the package name and description.                                           |
| What is not saved | Secret variable values are not stored in drafts. They are committed only when you save a version.                           |
| Scope             | One draft per user per package. Drafts are private to the user who created them.                                            |
| Running version   | Jobs and schedules always run the last saved version. Drafts never change a running or scheduled pipeline.                  |
| Version history   | Draft autosaves do not create package versions. Version history records only explicit saves.                                |

Actions that update your draft include adding, editing, moving, or removing components, connecting or disconnecting components, renaming the package or editing its description, changing package variables, and undo or redo.

<Note>
  Because drafts are saved continuously, the designer no longer warns about unsaved changes when you navigate away. Your work is already saved in your draft and is restored the next time you open the package.
</Note>

## Draft Indicators

When you have unsaved draft changes, Integrate.io ETL shows a **Draft Version** indicator in two places:

* **In the package designer**: a Draft Version badge appears next to the package name. Its tooltip reads "You have unsaved changes. Save Version to make it the running version."
* **In the package list**: the package shows a Draft Version tag with the version number your draft is based on, for example "Draft Version 5".

The version indicator in the designer shows the version your draft was created from, not the latest saved version.

## Resuming a Draft

When you open a package that has one of your drafts, the designer loads the draft automatically and shows the message "Restored your unsaved draft." There is no prompt: you continue exactly where you left off, even after closing the browser or switching devices.

To review the last saved version instead, open the package version history. Read-only version views never load drafts.

## Saving a Version

Clicking **Save Version** publishes your draft as the new running version of the package:

<Steps>
  <Step>
    Make your changes in the package designer. They are autosaved to your draft.
  </Step>

  <Step>
    Click **Save Version** (or **Save & Run job** to save and immediately run the package).
  </Step>

  <Step>
    The draft becomes the new package version, your draft is cleared, and the Draft Version badge disappears.
  </Step>
</Steps>

Package variables follow the same flow: variable changes are stored in your draft and applied when you save a version.

## Discarding a Draft

To throw away your unsaved changes and revert to the last saved version:

<Steps>
  <Step>
    In the package designer, open the **Save Version** dropdown menu.
  </Step>

  <Step>
    Click **Discard Draft**.
  </Step>

  <Step>
    Confirm in the dialog. The designer reverts to the last saved version and shows "Draft discarded. Reverted to the last saved version."
  </Step>
</Steps>

Discarding a draft removes only your own draft. It does not affect the saved package or any teammate's draft.

## Working with Teammates

Because drafts are per user, several people can edit the same package at once without overwriting each other's work in progress. Conflicts are handled at save time:

### A teammate saves a version while you are editing

If a newer version of the package was saved after your draft was created, clicking **Save Version** shows a dialog: "A newer version was saved while you were editing." You can choose:

| Option                  | What it does                                                                                      |
| :---------------------- | :------------------------------------------------------------------------------------------------ |
| Continue & Save Version | Publishes your draft anyway, replacing the newer version as the latest.                           |
| View Latest Version     | Opens the latest saved version read-only in a new browser tab so you can compare before deciding. |
| Copy to New Package     | Saves your draft as a brand-new package, leaving the original package untouched.                  |
| Discard Draft           | Deletes your draft and reverts to the latest saved version.                                       |

### A teammate saves a version while your editor is clean

If you have no unsaved changes when a teammate publishes a new version, the designer shows a "Package updated" notice with two options: **Refresh** to load the new version, or **Keep editing** to stay on the version you have open.

### Copying a draft to a new package

**Copy to New Package** creates a new package from your draft content. The new package is named "Copy of" followed by the original package name, and the original package and your draft on it are left unchanged. This is useful when your draft has diverged too far from the latest saved version to merge.

## Duplicating a Package with a Draft

Duplicating a package always copies the last saved version, not your draft. If you duplicate a package while you have unsaved draft changes, a dialog warns: "Duplicate copies the last saved version. Your unsaved draft changes on this package won't be included."

## Drafts and the AI Assistant

Edits made by the [AI Assistant](/etl/integrateio-ai-assistant) and by the [Integrate.io MCP tools](/etl/creating-packages-with-mcp-tools) are written to your draft, not to the running version. AI-generated changes appear on the canvas with the Draft Version badge, and take effect in jobs and schedules only after you click **Save Version**. Package validation also checks your draft when one exists, so you can validate AI or manual edits before publishing them.

## FAQ

**Q: Can my teammates see my draft?**

No. Drafts are private to each user. A package shows the Draft Version tag only to the user who has unsaved changes on it.

**Q: What happens to my draft if I close the browser without saving?**

Nothing is lost. Drafts are saved on the server, so your changes are restored automatically the next time you open the package.

**Q: Do drafts affect scheduled jobs?**

No. Schedules and manually run jobs always use the last saved version of the package. Draft changes take effect only after you save a version.

**Q: Does autosaving create package versions?**

No. Draft autosaves are not recorded in version history. A new version is created only when you click Save Version.

**Q: Are secret variables stored in my draft?**

No. Secret variable values are excluded from drafts and are committed only when you save a version.

**Q: What happens to drafts when a package or user is deleted?**

Deleting a package removes all drafts on it. Removing a user from the account removes that user's drafts.

## Related

<CardGroup cols={2}>
  <Card title="Package Version Control" icon="arrow-right" href="/etl/how-do-i-use-package-version-control" horizontal />

  <Card title="Package Designer" icon="arrow-right" href="/etl/working-in-the-new-package-designer" horizontal />

  <Card title="Validating a Package" icon="arrow-right" href="/etl/validating-a-package" horizontal />

  <Card title="AI Assistant" icon="arrow-right" href="/etl/integrateio-ai-assistant" horizontal />
</CardGroup>
