# Send desk updates to other services and receive events back

> Connect a desk to other services with webhooks: send updates out with Send to a URL, bring events in with Receive from a URL, and let an agent act between.

Source: https://plexiidesk.com/help/automate-connect-other-apps
Section: Widgets > Build and automate
Plans: All plans
Updated: 2026-10-15

Two widgets connect a desk to the rest of the web. **Send to a URL** sends a widget's content to another service each time it changes. **Receive from a URL** gives you an address that other services can send to, and passes what arrives along its wires. Wires join them to your notes, tables and Desk agents, so information can come in, be worked on and go back out.

This page shows the common patterns, step by step. For every detail of each widget, see [Send to a URL widget](https://plexiidesk.com/help/widget-send-to-url) and [Receive from a URL widget](https://plexiidesk.com/help/widget-receive-from-url).

## Before you start

- Both widgets are on every plan.
- **Receive from a URL needs you to be signed in.** It creates its address through your account.
- **PlexiDesk must be open.** Updates are sent from the app, and messages arrive only while it is open, signed in, with the desk that holds the widget open.
- The patterns that use a Desk agent need AI to be set up. See [AI credits and where your AI runs](https://plexiidesk.com/help/ai-credits).
- You need the service on the other side to support webhooks: sending a message to a web address, receiving one, or both. Its settings usually call this a webhook or a webhook URL.

## How the pieces fit

| Piece | What it does |
| --- | --- |
| **Receive from a URL** | Holds the last message another service sent to its address, and passes it along every wire out of it. |
| **A Keep in sync wire** | Copies the message into a note, page, card, table or field each time a new one arrives. |
| **A note** | Shows the message, and can feed it to a Desk agent. |
| **Desk agent** | Reads what is wired into it and writes a result, such as a summary, a reply or a reformatted message. |
| **Send to a URL** | Sends whatever is wired into it to another service, each time it changes. |

To draw a wire, point at the first widget, click the link button in its title bar, click the second widget, and choose how it should connect. See [Link widgets and set up wires](https://plexiidesk.com/help/canvas-link-widgets).

## Send desk updates out

Use this when another service should hear about a note, a decision log or a status as it changes.

1. Add a **Send to a URL** widget: right-click the title bar of the widget you want to send and choose **Create & link** > **Send to a URL**. It appears beside it, already wired.
2. Paste the other service's webhook address into its box and press `Enter`.
3. Click **Send test**, and check that it says **Sent OK**.
4. Edit the widget you wired in. About a second later, its content is sent.

A Sticky, Note or Markdown note sends its text as it is. If the service needs the message in a particular shape, put a Desk agent in between, as in the next pattern.

## Send a tidy update written by an agent

Use this when the service should get a summary or a specific format rather than raw notes.

1. Wire your notes into a **Desk agent** with **Feed in as context**.
2. Give the agent an instruction that describes exactly what to send. For example: *Write one short paragraph saying what changed in the wired notes since the last run.* If the service needs JSON, say so: *Write a JSON object with one field, "text", holding a one-line summary.*
3. Set the agent to **On change**, so it runs when the notes change.
4. Wire the agent into a **Send to a URL** widget that holds the service's address.

Each time the agent runs, its latest result is sent. See [Desk agent widget](https://plexiidesk.com/help/widget-desk-agent).

## Bring events in

Use this to see on your desk what another service sends, such as a new form entry or a payment notice.

1. Add a **Receive from a URL** widget. Wait for **Creating your URL…** to change to an address.
2. Click **Copy**, and paste the address into the other service's webhook settings.
3. Add a **Note** beside it, and draw a wire from the Receive from a URL widget to the note. Choose **Keep in sync**.
4. Ask the service to send a test message, or trigger a real event.

The message appears in the note, exactly as it was sent. Each new message replaces the last. To build rows instead, wire it into a **Table** with **Keep in sync**, and the table's AI turns each message into rows.

## Act on events with an agent

Use this when each event needs some thinking, such as a reply to draft or a task list to update.

1. Set up **Bring events in**, above, so each message lands in a note.
2. Add a **Desk agent**, and wire the note into it with **Feed in as context**.
3. Write the agent's instruction, for example *For each new enquiry in the wired note, draft a two-line reply.*
4. Set it to **On change**, and choose where its result goes in **Write to**.

Each new message updates the note, and the agent runs a moment later.

> **Note:**
> Wire the agent to the note, not straight to the Receive from a URL widget. An agent or a **Transform** wire reads only the widget's address, not the message it received.

## Relay from one service to another

Use this to pass messages straight through, such as forwarding a form's entries to another service.

1. Add a **Receive from a URL** widget and give its address to the first service.
2. Add a **Send to a URL** widget with the second service's address.
3. Wire the Receive from a URL widget into the Send to a URL widget. Any kind of wire works.

Each message that arrives is sent on unchanged.

## Keep an eye on it all

Click the lightning-bolt button in the corner of the desk (its tooltip says **Automations on this desk**). It lists every agent and live wire on the desk, including every wire into a Send to a URL widget, with when each last ran or sent and whether it worked. Each has a switch to turn it off. See [See what runs on its own on a desk](https://plexiidesk.com/help/canvas-automations).

## Tips

- **Test each step on its own.** Use **Send test** for the outgoing side, and a note on a **Keep in sync** wire for the incoming side, before you add an agent.
- **Keep integration desks small.** One desk per connection, holding only the widgets in the chain, is easy to read and easy to switch off.
- **Name your widgets.** The Automations panel lists each wire by the names of the widgets at each end.

## Common questions

**Do these keep running when PlexiDesk is closed?** No. Updates are sent, and messages received, only while PlexiDesk is open. Messages sent to a Receive from a URL address while it is closed are not kept.

**A message arrived in my note, but my second wire out of the note did not fire.** A note that was just written by a wire does not set off that note's own wires straight away, which stops wires from triggering each other in a loop. Wire a Desk agent to the note instead, as in [Act on events with an agent](#act-on-events-with-an-agent), or relay straight from the Receive from a URL widget.

**Which services can I connect?** Any service that can send a message to a web address, or receive one. PlexiDesk sends and receives plain HTTP messages and has no settings for any one service.

## Related tasks

- [Send to a URL widget](https://plexiidesk.com/help/widget-send-to-url)
- [Receive from a URL widget](https://plexiidesk.com/help/widget-receive-from-url)
- [Desk agent widget](https://plexiidesk.com/help/widget-desk-agent)
- [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)
