# Send to a URL widget

> Send a widget's content to a web address each time it changes, so another service hears about updates on your desk. Test the address with one click.

Source: https://plexiidesk.com/help/widget-send-to-url
Section: Widgets > Build and automate
Plans: All plans
Updated: 2026-10-15

The Send to a URL widget passes your desk's updates on to another service. You give it a web address, then wire a widget into it. Each time that widget's content changes, PlexiDesk sends the new content to the address.

Use it when another service should hear about changes on your desk: an automation service that starts a workflow, an incoming-message address for a chat channel, or your own server.

For the opposite direction, where another service sends information onto your desk, use the [Receive from a URL widget](https://plexiidesk.com/help/widget-receive-from-url).

## Before you start

- The Send to a URL widget is on every plan.
- You need the web address that should receive your updates. The service you are sending to gives you this. It usually calls it a webhook URL. It must start with `https://` or `http://`.
- Sending happens from the PlexiDesk app on your computer, so PlexiDesk must be open.

## Add a Send to a URL widget

1. Open the desk you want it on.
2. Click **Add widget** in the centre of the header.
3. In the **Build & automate** column, click **Send to a URL**.

Other ways to add one:

- **From the widget whose content you want to send.** Right-click its title bar and choose **Create & link** > **Send to a URL**. The new widget appears beside it, already wired to it. Skip to [Set the address](#set-the-address).
- **Right-click an empty part of the desk** and choose **Add object** > **Advanced** > **Send to a URL**.
- **Press `⌘` `K`** on a Mac or `Ctrl` `K` on Windows, type *send to a url* and choose **Add Send to a URL**.

## Set the address

1. Click in the address box at the top of the widget.
2. Paste the web address you were given.
3. Press `Enter`, or click somewhere else. The address is saved.

### Check the address with a test

Click **Send test**. The button shows **Sending…**, then the result appears beside it:

| Result | What it means |
| --- | --- |
| **Sent OK** with a number, such as **Sent OK (200)** | The service accepted it. |
| **Enter a URL first.** | The box is empty. |
| **Enter a valid http(s) URL.** | The address does not start with `https://` or `http://`, or is not a web address. |
| **HTTP** and a number, such as **HTTP 404** | The service answered with an error. Check the address with the service. |
| **Request timed out.** | The service did not answer within 15 seconds. |

The test sends a small sample message, `{"test":true,"from":"PlexiDesk","at":"…"}`, with the time it was sent. Some services use the first message they receive to learn what your messages look like, so you may want to send a real update instead. See the next section.

## Wire in what to send

1. Point at the widget whose content you want to send, then click the link button in its title bar. Its tooltip says **Click, then click another widget to connect them**.
2. Click the Send to a URL widget.
3. In **How should this connect?**, choose any option. A wire into Send to a URL always sends the content as it is, whichever you choose.

From now on, about a second after the content changes, it is sent to the address. A burst of quick edits sends once, not once per keystroke. See [Link widgets and set up wires](https://plexiidesk.com/help/canvas-link-widgets).

You can wire more than one widget into the same Send to a URL widget. Each one sends its own content when it changes.

## What is sent

Each update is sent as a `POST` request with the header `content-type: application/json`. The body is the widget's content, as it is:

| Widget wired in | What is sent |
| --- | --- |
| **Sticky**, **Note** or **Markdown** | Its text. |
| **Desk agent** | Its latest result, each time it runs. |
| **Receive from a URL** | The last message it received, so you can pass messages from one service on to another. |
| **Other widgets** | The data the widget stores, which may not be readable text. For a table, for example, it is only a reference to the table. |

For readable updates from anything else, wire it into a [Desk agent](https://plexiidesk.com/help/widget-desk-agent) that writes the update you want, and wire the agent into Send to a URL. Picture and video widgets cannot be sent: the wire shows **An image has no text to send.**

> **Note:**
> The body is not wrapped in anything. If the service expects JSON in a particular shape, the content you send must already be in that shape. A Desk agent can write it for you, for example with the instruction *Write a JSON object with one field, "text", holding a one-line summary of the wired notes.*

## See whether it worked

- **On the wire.** If a send fails, the badge on the wire turns red and gives the reason, such as **Add a URL to this webhook before sending.** or the error from the service.
- **In the Automations panel.** Click the lightning-bolt button in the corner of the desk (its tooltip says **Automations on this desk**). Each wire into a Send to a URL widget is listed, with **Webhook · POSTs to a URL on change** under it and its status: **Hasn't sent yet**, **Sent** and how long ago, **Stale — source changed**, **Last send failed** or **Off**. See [See what runs on its own on a desk](https://plexiidesk.com/help/canvas-automations).

A failed send is not retried. The next change sends again.

## Pause or stop sending

- **To pause,** open the Automations panel and turn off the switch beside the wire. Turn it on again to resume.
- **To stop for good,** delete the wire or the widget.

## Publishing a live view

When you publish a live view of a desk, a Send to a URL widget shows as a placeholder. Its address is not published. See [Publish a live view of a desk](https://plexiidesk.com/help/share-live-web-view).

## Common questions

**I wired a widget in, but nothing was sent.** Sending starts with the next change. Edit the widget, wait a second, then check the Automations panel. Also check that the wire is on, and that PlexiDesk was open when the change was made.

**The test worked, but real updates are rejected.** The service may expect JSON in a particular shape, while a note sends plain text. Send through a Desk agent that writes the shape the service expects. See [What is sent](#what-is-sent).

**Can I add my own headers to each request?** No. Each request carries only the `content-type` header.

**Does it send when my computer is off?** No. Updates are sent from the PlexiDesk app, while it is open.

## Related tasks

- [Send desk updates to other services and receive events back](https://plexiidesk.com/help/automate-connect-other-apps)
- [Receive from a URL widget](https://plexiidesk.com/help/widget-receive-from-url)
- [Link widgets and set up wires](https://plexiidesk.com/help/canvas-link-widgets)
- [See what runs on its own on a desk](https://plexiidesk.com/help/canvas-automations)
- [Build & automate widgets](https://plexiidesk.com/help/widgets-build-and-automate)
