Webhooks: Getting Notified When Links Are Used

Webhooks let TinyX notify another tool the moment something happens on a link: a visit, a download, an upload to an Upload Drop, a form response and more. TinyX doesn't send email notifications for link activity, so webhooks are how you get alerts. They're on every plan.

Supported destinations

TinyX recognizes these URLs and formats the message for them automatically:

  • Slack (https://hooks.slack.com/...): a formatted message in a channel
  • Discord (https://discord.com/api/webhooks/...): a rich embed in a channel
  • Google Chat (https://chat.googleapis.com/...): a message in a Space
  • Any other HTTPS URL: a JSON POST you can process yourself (Zapier, Make, your own server)

Webhook URLs must use HTTPS. Plain HTTP and IP-address URLs are rejected.

Setting up a webhook

Webhooks are set up in two steps: add the URL to your account, then attach it to the links you care about.

  1. Go to your account Settings and open the Webhooks section
  2. Add your webhook URL (and an optional label)
  3. Open a link (or create a new one) and, under Notify on activity, tick the webhooks that should receive its events
  4. Save

A webhook only fires for links it's attached to. There's no per-event filter: an attached webhook receives every event for that link.

Getting a webhook URL

Slack: create an Incoming Webhook for your workspace. Slack gives you a URL starting with https://hooks.slack.com/.

Discord: open the channel settings, then Integrations, then Webhooks, then New Webhook, and copy the URL.

Google Chat: in a Space, open Apps & integrations and add a webhook. Copy the URL.

Events

Event When it fires
link.created A link is created with this webhook attached
link.deleted The link is deleted
link.visited The link is opened
link.redirected A URL link redirects a visitor
link.viewed A shared file is viewed
link.downloaded A shared file is downloaded
encrypted.downloaded An end-to-end encrypted file is downloaded
link.uploaded A file arrives through an Upload Drop
questionnaire.response A questionnaire gets a response (includes IP and country, not the answers)

What the payload looks like

Slack, Discord and Google Chat get a readable message with the event name, the link code and key details. Any other URL receives a JSON body like this:

{
  "event": "link.uploaded",
  "link_code": "abc123",
  "timestamp": "2026-10-11T21:00:00.000Z",
  "details": { "...": "..." },
  "text": "...",
  "content": "..."
}

Requests are sent with Content-Type: application/json and User-Agent: TinyX-Webhook/1.0.

Webhook limits by plan

Plan Webhooks
Free 1
Pro 5
Max 20

Troubleshooting

Notifications aren't arriving. Check the webhook is attached to the link (under Notify on activity), that the URL is correct, and that the Slack, Discord or Google Chat integration still exists.

My endpoint isn't triggering. Your endpoint should respond with a 2xx status within 10 seconds. Redirects (3xx) aren't followed, and failed deliveries aren't retried.

Still stuck? Email support@tinyx.co and a real person will reply.