> For the complete documentation index, see [llms.txt](https://docs.diaflow.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.diaflow.io/workflow-builder/publish-a-workflow.md).

# Publish a workflow

Publish a workflow when it is ready for real use.

Click **Publish** in the top-right corner.

{% hint style="warning" %}
Before you publish, make sure the workflow runs without errors.
{% endhint %}

After publishing, the workflow becomes active.

What happens next depends on the workflow type.

<figure><img src="/files/OvvyLXh7Znv2XQOOlFIL" alt=""><figcaption></figcaption></figure>

## Publish Tools and Chats

After publishing a **Tool** or **Chat**, you can usually use it in 3 ways:

* share an **internal link**
* share a **public link**
* run it via **API**

<figure><img src="/files/btAJ6ZE0oMTlicdR99mw" alt=""><figcaption></figcaption></figure>

### Share with an internal link

Use an internal link when access should stay inside your workspace.

Signed-in users can open the workflow from that link.

<figure><img src="/files/lGpJSEmdQD4EgNuc39aK" alt=""><figcaption></figcaption></figure>

### Share with a public link

Use a public link when people outside your workspace need access.

You can copy the link and share it directly.

<figure><img src="/files/rG8Kw4gxqXScyLUultwf" alt=""><figcaption></figcaption></figure>

### Customize the public experience

For public Tools or Chats, you can update the shared page settings.

You can adjust:

* general details such as title, subtitle, logo, cover, color, and style
* input and output settings
* security, including public access or password protection

<figure><img src="/files/CYZ0Ssvgw0mnm0ejxnv7" alt=""><figcaption></figcaption></figure>

### Run via API

Use **API Docs** when you want to connect the workflow to another system.

Available examples include:

* Python
* JavaScript
* cURL

<figure><img src="/files/QDSCKONgKuJTSFCdNF4l" alt=""><figcaption></figcaption></figure>

### Publish Automation

Publishing also makes an **Automation** workflow active.

Automation does not use public sharing links like Tools and Chats.

### Tips

* Publish only after testing with real inputs.
* Use an internal link before switching to a public link.
* Use API access when the workflow needs to run from another app.

### Next steps

* Learn how to [manage a workflow](/workflow-builder/manage-a-workflow.md).
* Learn how to [unpublish a workflow](/workflow-builder/unpublish-a-workflow.md).
