> For the complete documentation index, see [llms.txt](https://help.rankability.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.rankability.com/copywriter/exporting-your-content.md).

# Exporting and publishing content

Assign a Copywriter project in Asana, download its draft, or publish it to WordPress, Webflow, a GitHub pull request, or your own webhook.

Use **Send to Asana** to coordinate review and delivery in a mapped Asana project. Use **Download** to save the current artifact or create a Google Doc, and **Publish** to deliver an article to WordPress, Webflow, a GitHub pull request, or your own webhook. These actions are different from **Share**, which creates a review link, and **Mark as done**, which only changes the project status.

## Before you export

Open the project and select **Draft** or **Script**. Confirm that the header shows **Saved**, then complete the [draft review workflow](/copywriter/running-an-editor-review.md). File exports and CMS deliveries use the project's current saved content and metadata; unsaved text is not a safe handoff point.

Rankability also checks the draft for problems a good content score cannot rule out. When one applies, the editor marks the draft **Not publish-ready** and lists exactly what to resolve. The checks cover incomplete or placeholder content, internal instructions left in the article body, repeated sections, a commerce page with no verified destination, claims and comparisons that the retained research evidence does not support, a claims check that did not finish, and a draft that does not honor an explicit instruction about the client's own brand — for example one that asked to feature the brand but only mentions it in passing, or that ranks a competitor ahead of a brand you required first. Work through the listed items, then publish.

Scheduled auto-publishing applies the same checks. When one applies, a run that would have published live is delivered to the CMS as a draft for human review instead, so the work is not lost.

The choices shown depend on the project artifact, plan, and client connections. A project cannot export a brief or YouTube package it did not generate. New YouTube Script projects can no longer be created, but historical projects retain their package export. Free-plan limits can also make an option unavailable.

## Choose a file or document format

Select **Download**, then choose the format that matches the next editor:

* **Google Docs** creates a document and opens it in a new tab. The first use can open a Google authorization window. If the organization-level Google Docs integration is not configured, contact Rankability support.
* **HTML (developer handoff)** downloads an `.html` file for a developer, CMS, or downstream build workflow.
* **Markdown** downloads the article as `.md`.
* **Microsoft Word** downloads a `.docx` document.
* **Brief (Markdown)** appears only when the project contains a generated brief and downloads that brief separately from the draft.
* **YouTube Package** appears for historical YouTube Script projects and downloads a text package containing the generated video title, description, chapters, tags, and script.

HTML, Markdown, and Word exports are not available on the free plan. Rankability can ask for a missing first name the first time you use one of those three file exports; that profile prompt is not part of the content itself.

## Assign the content project in Asana

When Asana is connected and the client is mapped, open the Copywriter project and choose **Send to Asana**. Rankability creates a task in the mapped project with the content topic, available status or project context, and a direct link back to the Copywriter project. It adds a **Copywriter** tag when the connected Asana workspace permits it.

After the handoff, **In Asana** opens the existing task. Reusing the action does not create a second task for the same linked project.

This is a coordination handoff, not publishing or universal status sync. Rankability does not automatically select an assignee or due date, and completing the Asana task does not mark the Copywriter project done or publish the content. See [Connecting Rankability to Asana](/account-and-settings/connecting-asana.md) for connection and mapping instructions.

## Publish to WordPress

Select **Publish > WordPress**. The client needs a saved WordPress connection. If none exists, the dialog routes you to **Workspace settings > Integrations**, where the Rankability WordPress plugin and client-scoped token are configured.

Rankability saves pending editor changes before the dialog opens, so the preview reflects your latest text. If that save fails, the dialog does not open and Rankability asks you to save your latest edits first.

In the publish dialog:

1. Confirm the connected site and its freshness or verification message.
2. Review the preview, including title, slug, meta description, and hero image when present. Under **Featured image**, choose one of the workspace's approved images to set as the WordPress featured image, or **Use automatic selection** to leave that to Rankability. Approved images come from workspace settings, so add them there first if the picker is empty.
3. For a standard article, choose **Draft** or **Publish now**, then choose **Post** or **Page**.
4. A local-service landing page always publishes as a draft with editable blocks so you can review its calls to action before it goes live. You still choose whether it becomes a **Post** or a **Page**.
5. Confirm the delivery, then open the returned WordPress URL when available.

The editor toolbar keeps the latest WordPress delivery state visible:

* **Queued** means Rankability accepted the delivery but the plugin has not acknowledged it yet.
* **Publishing** means delivery is still active.
* **Published** means the destination acknowledged completion and can include the returned URL.
* **Failed** means the attempt needs review. Open **Publishing history** for the saved diagnostic before retrying.

Do not treat a queued fallback as a successful publish. Rankability continues polling queued deliveries, and one-off publish attempts remain in Publishing history rather than appearing as recurring Routines.

Publishing creates a CMS item; it does not turn the Rankability editor into a two-way WordPress editor. Make later CMS changes in WordPress, and avoid repeating the publish action until you have confirmed whether the prior item was created. See [WordPress article delivery formats](/copywriter/wordpress-article-delivery-formats.md) for native blocks and page-builder behavior.

## Publish to Webflow

Select **Publish > Webflow CMS** when the client has a current Webflow connection. Confirm the site and collection, review the preview, and choose **Save as draft (staged)** or **Publish immediately**.

If the option says **Not connected**, open **Workspace settings > Integrations**, add a current Webflow Site API Token, and select the site and collection. A previous Webflow link can require reconnection before publishing.

Rankability maps the supported article fields to the connected collection. If the collection uses different field slugs or required fields, publishing can fail with a destination-specific error; correct the collection or connection before retrying.

## Save a Shopify draft

Select **Publish > Shopify draft** when the client has a connected Shopify store. Rankability saves the article as an unpublished Shopify blog article; it cannot publish live, so you review and publish it in Shopify.

Connect the store once in **Workspace settings > Integrations** under Shopify. You need the permanent `.myshopify.com` store domain rather than a custom storefront domain, and an Admin API access token with content read and write access; the token is encrypted after saving. Then choose the blog to write to, the article author, and any default tags. Use **Reconnect or change blog** when the store, token, or blog changes.

The publish dialog shows the store, blog, and author before you confirm. Saving the same article again updates the existing draft rather than creating a second one.

## Open a GitHub pull request

Select **Publish > GitHub pull request** to hand the saved article to a repository-based website workflow. If the client does not have a usable GitHub destination, use **Manage destinations** or **Connect a destination** first.

Choose what Rankability should add under **What should Rankability add?**:

* **Site article** commits the draft into the repository's detected Markdown or MDX article folder. This is the option that publishes content to the site.
* **Developer handoff (HTML)** commits the article as an HTML file for a developer to place. Choose the **Repository folder** it should go in.

The publish-readiness checks gate the site-article option: when the draft is not publish-ready, the dialog lists what to resolve and keeps the confirm action disabled until you fix it. A developer handoff is a file for a person to review before anything reaches the site, so it is not blocked the same way — read the listed items before you hand the file over.

Before confirming a site article, review the repository, base branch, exact output file path, and full proposed file diff, including frontmatter. Rankability saves pending editor changes before preparing this preview. The confirmation is bound to that saved draft and the repository's current base-branch snapshot; if the draft, mapping, branch, or destination file changes, Rankability blocks the pull request and asks you to review a refreshed diff.

After confirmation, Rankability creates or reconciles one deterministic branch and opens one pull request for review. Retrying the same saved artifact does not intentionally create an equivalent second pull request. Rankability does not merge the pull request or publish the website automatically. Review its checks, approve, merge, and deploy through the repository's normal workflow.

A scheduled Routine can also deliver to GitHub. Choose **Projects + GitHub pull request** as the Routine's destination. Connect GitHub and confirm the client's article folder first; Rankability will not save the Routine until both are in place. Each scheduled run opens a pull request for review in the same way, so nothing reaches the site without your approval.

## Send a draft to your own workflow

When the client has a connected custom webhook, **Publish > Send to webhook** hands the saved draft to your own HTTPS workflow — an automation tool or an internal service — instead of a CMS Rankability integrates with directly. Confirm the delivery when the dialog asks.

An organization admin or owner connects the endpoint once in **Workspace settings > Integrations** under Publishing, confirms a test delivery, and copies the signing secret, which is shown only when the endpoint is saved. After that, members can send drafts without approving each delivery. Rankability signs every request so your workflow can verify it came from Rankability, and refuses endpoints on local, private, link-local, and cloud-metadata addresses.

A successful delivery means your endpoint accepted the draft. It is not confirmation that anything was published: whatever the workflow does next — enrichment, review, publishing — remains yours to run and verify.

## Check publishing history and the destination

Open **More actions > Publishing history** to inspect CMS attempts. Use the destination, status, timestamp, error, and available CMS link to determine what happened before retrying. A staged Webflow item and a live item are different states; confirm the remote collection so you do not mistake a partial publish for a missing item.

An API or MCP integration can inspect the same control-plane state with read-only scopes. `routines:read` lists recurring content and Knowledge-monitor configuration; `publishing:read` lists credential-free connections and privacy-safe delivery receipts. These reads cannot change or run a Routine, expose credentials or article bodies, reconnect a destination, deliver content, validate remote content, or retry a failed delivery.

The Agent API can also request a destination draft with the separate `publishing:write` scope. The integration first creates an internal immutable article snapshot, checks that snapshot with the read-only preflight, and then explicitly confirms delivery with a stable idempotency key. Snapshot preparation does not write to the CMS or GitHub. Delivery creates only a CMS draft or reviewable GitHub pull request; it cannot make content live or bypass the destination's review step.

After every download or publish, inspect the destination. Headings, lists, links, and basic emphasis generally transfer well, but themes and editors can change spacing, tables, embeds, images, block structure, and metadata rendering.

## Troubleshooting

* **A download is missing:** Confirm the project produced that artifact and that your plan supports it.
* **Google Docs opens an authorization page:** Complete the Google flow, then return to the project and export again if a document did not open.
* **WordPress has no connection:** Install or update the Rankability plugin and finish the client-scoped connection in Workspace settings.
* **Webflow is disabled:** Reconnect the client with a valid Site API Token and collection.
* **GitHub is unavailable:** Confirm the client destination can access the intended repository and that its base branch, content directory, and file format are still valid.
* **A CMS publish failed:** Read the returned error and Publishing history, verify the remote CMS for a partial success, correct the connection or content, and only then retry.

## Related articles

* [Reviewing a draft in the editor](/copywriter/running-an-editor-review.md)
* [Content editor reference](/copywriter/content-editor-reference.md)
* [WordPress article delivery formats](/copywriter/wordpress-article-delivery-formats.md)
* [Sharing content and tracking reports](/copywriter/sharing-content-and-tracking-reports.md)
* [Connecting Rankability to Asana](/account-and-settings/connecting-asana.md)
