All Tutorials
campaigns

Import your existing content

Migrate the campaigns and media you already have by letting your own agent run the Postward import loop against the source.

25 minutes
Intermediate
Teams migrating from another tool
Remote execution

What You Will Finish With

Your existing content exists as DRAFT campaigns with media-library assets and source revisions awaiting review — nothing published.

  1. 1

    Give the agent access, not Postward

    Postward never connects to your old tool. You grant your own agent read access to where the content lives today — a repository, spreadsheet, export archive, live site or old CMS — and the agent reads it with credentials you already control.

  2. 2

    Run the import brief

    Open Studio and use the import brief shown under Next steps while the workspace has no campaigns. It contains the full recipe; you only point it at the source.

  3. 3

    Inventory before creating

    The brief asks the agent to list every item it found, in import order, and to wait for your confirmation. Adjust the list before anything is created.

  4. 4

    Create the campaign, then upload media

    For each item the agent calls create_campaign in DRAFT, then media_create_upload. The returned presigned PUT sends media bytes straight to your own storage — one asset per call, and every asset lands in your media library.

  5. 5

    Reference the assets

    create_campaign_source_revision writes the canonical Markdown referencing asset://<assetId>, with heroAssetId when the item has a hero image. Campaigns reference the library; they never own private copies.

  6. 6

    Batch the import

    Large imports run in batches of about five with a progress report after each batch, so an interrupted import resumes cleanly instead of duplicating campaigns.

  7. 7

    Review; never auto-publish

    The import stops at review on purpose. Every imported campaign waits in Studio, and importing spends no publication quota — only publishing does.