Send an update
Send a useful message, file it into the inbox, and give the recipient a clear next step. Webhook and terminal examples below describe the same package-pickup workflow.
Send from a webhook
For a package-pickup alert, send a JSON object with body. The service supplies the sender title and other defaults. This example uses a placeholder token; substitute the URL saved during connection setup.
curl -X POST https://notify.belweave.ai/hooks/whk_your_token -H 'Content-Type: application/json' -d '{"body":"Package PKG-42 is ready at the front desk."}'Send from a terminal
Use notify send <body> for an update from a terminal. It targets active supported devices unless you specify routing. Set the sender title per call; sends with the same title are threaded together.
notify send "Package PKG-42 is ready" \
--title "Warehouse desk" \
--image https://warehouse.example.com/icon.png \
--url https://warehouse.example.com/packages/PKG-42| Flag | Type | Description |
|---|---|---|
| --title | string | Sender name. Defaults to Notify. |
| --image | url | Public HTTPS avatar, same rules as the webhook imageUrl. |
| --url | url | Web URL, app deep link, or Shortcuts URL opened when tapped. |
| --device | id, repeatable | Target eligible devices by stable ID. Included for free. |
| --project | string | File the notification into a named project in the Notify app inbox. |
| --summary | string | Short push/preview text for a long body. Bodies can hold up to 8,000 characters. |
| --markdown | boolean | Record the body as Markdown (same as --body-format markdown); V1 renders plain text. |
| --app | app id | Open this web app in Notify when tapped; --url must stay on its origin. |
| --idempotency-key | string | Safe retries: replays return the original result without a second push. |
| --stdin | boolean | Merge a JSON object from stdin under the explicit flags. |
Organize longer messages
Use project to keep recurring updates together, for example Warehouse maintenance. Names are matched within an account after Unicode normalization and case folding: Warehouse maintenance and warehouse maintenance resolve to one project, with the first spelling kept for display. Unfiled messages appear under Other.
Put the full report in body and a short actionable digest in summary. The digest supplies banners and list previews; the complete body remains in the inbox detail. Clients currently show plain text and tappable links. bodyFormat: "markdown" stores the format metadata but does not enable Markdown rendering in V1.
message explaining the fallback. Existing names continue to resolve.Give the tap a destination
A destination belongs in url, either on the service or in the individual send. The recipient must tap to open it. A received push alone cannot launch a site, another app, or a shortcut.
- Prefer a universal
https://link when the destination supports app and browser routes. On iOS, an installed associated app can handle it; otherwise the website opens. - A documented custom scheme can address an installed app directly, such as
warehouse://packages/PKG-42. Without a handler, the destination cannot open. - URL-encode spaces and reserved characters in route names and query values. Shortcuts are an iOS-specific destination.
{
"body": "Package PKG-42 is ready for collection.",
"url": "warehouse://packages/PKG-42"
}For an iPhone shortcut, follow Apple’s run-shortcut URL format. Match the saved shortcut’s name and encode its query values. input=text passes the text value; input=clipboard uses the device clipboard.
{
"body": "Warehouse pickuped. Tap to run the follow-up.",
"url": "shortcuts://run-shortcut?name=Package%20Pickup&input=text&text=collect%20PKG-42"
}javascript:, data:, file:, blob:, and about:.Get connected
Connect the source and the people who should receive its updates. Start with an account and device, then choose a webhook, an MCP client, or the CLI.
Ask for a decision
Pause work for a person’s approval, choice, or reply. Creating a prompt is the beginning of that exchange; use its confirmed server outcome to decide what happens next.