# link.clicked

import { WebhookResponseBodyParameters } from "/snippets/webhook-response-body-parameters.mdx";

Occurs whenever a link is clicked (or when its QR code is scanned).

<Tip>
  You can scope which links trigger a `link.clicked` webhook. When creating or editing the webhook in the dashboard, choose one of the following:

1. **All links** – trigger the webhook for every link in your workspace.
2. **Include specific folders** (recommended) – trigger the webhook for all links in the selected folders.
3. **Include specific links** – trigger the webhook only for the links you explicitly select.

If you select the 3rd option, you can programmatically associate specific links with your `link.clicked` webhook by passing the webhook ID under the `webhookIds` [prop](/docs/api-reference/links/create#body-webhook-ids-one-of-0) when creating or updating a link.

</Tip>

<WebhookResponseBodyParameters type="link.clicked">
  <ParamField body="click" type="object">
    Details about the click event.

    <Expandable title="click object">
      <ParamField body="id" type="string">
        Unique identifier for the click.
      </ParamField>
      <ParamField body="timestamp" type="string">
        ISO 8601 timestamp when the click occurred.
      </ParamField>
      <ParamField body="url" type="string">
        The destination URL that was visited.
      </ParamField>
      <ParamField body="country" type="string">
        Country code (e.g. <code>US</code>).
      </ParamField>
      <ParamField body="city" type="string">
        City name.
      </ParamField>
      <ParamField body="region" type="string">
        Region or region code.
      </ParamField>
      <ParamField body="continent" type="string">
        Continent code (e.g. <code>NA</code>).
      </ParamField>
      <ParamField body="device" type="string">
        Device type (e.g. <code>Desktop</code>, <code>Mobile</code>).
      </ParamField>
      <ParamField body="browser" type="string">
        Browser name (e.g. <code>Chrome</code>).
      </ParamField>
      <ParamField body="os" type="string">
        Operating system (e.g. <code>Mac OS</code>).
      </ParamField>
      <ParamField body="ua" type="string">
        User agent string.
      </ParamField>
      <ParamField body="referer" type="string">
        Referrer hostname or <code>(direct)</code>.
      </ParamField>
      <ParamField body="refererUrl" type="string">
        Full referrer URL or <code>(direct)</code>.
      </ParamField>
      <ParamField body="qr" type="boolean">
        Whether the click came from a QR code scan.
      </ParamField>
      <ParamField body="ip" type="string">
        IP address of the visitor.
      </ParamField>
    </Expandable>

  </ParamField>
  <ParamField body="link" type="object">
    The link resource that was clicked (full link object including stats such as <code>clicks</code>, <code>shortLink</code>, <code>url</code>, etc.).
  </ParamField>
</WebhookResponseBodyParameters>

<ResponseExample>

```json Response
{
  "id": "evt_b9ywgxWqai2glUpCQjclB17kM",
  "event": "link.clicked",
  "createdAt": "2024-08-30T10:16:13.149Z",
  "data": {
    "click": {
      "id": "d0UtZqE0BZuBPrJS",
      "timestamp": "2024-08-30T10:16:12.124Z",
      "url": "https://github.com/dubinc/dub",
      "country": "US",
      "city": "San Francisco",
      "region": "CA",
      "continent": "NA",
      "device": "Desktop",
      "browser": "Chrome",
      "os": "Mac OS",
      "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",
      "referer": "(direct)",
      "refererUrl": "(direct)",
      "qr": false,
      "ip": "63.141.57.109"
    },
    "link": {
      "id": "cm0faqkyn0001txvfwjfeq7gl",
      "domain": "dub.sh",
      "key": "79ys3WA",
      "url": "https://github.com/dubinc/dub",
      "trackConversion": true,
      "externalId": null,
      "tenantId": null,
      "partnerId": null,
      "programId": null,
      "archived": false,
      "expiresAt": null,
      "expiredUrl": null,
      "disabledAt": null,
      "password": null,
      "proxy": false,
      "title": null,
      "description": null,
      "image": null,
      "video": null,
      "rewrite": false,
      "doIndex": false,
      "ios": null,
      "android": null,
      "geo": null,
      "publicStats": false,
      "folderId": null,
      "tagId": null,
      "tags": [],
      "webhookIds": [],
      "comments": null,
      "shortLink": "https://dub.sh/79ys3WA",
      "qrCode": "https://api.dub.co/qr?url=https://dub.sh/79ys3WA?qr=1",
      "utm_source": null,
      "utm_medium": null,
      "utm_campaign": null,
      "utm_term": null,
      "utm_content": null,
      "userId": "cm022rkcw0000ikt14mscg9sg",
      "workspaceId": "ws_cm022sis60003ikt1syy7kfhl",
      "clicks": 11,
      "lastClicked": "2024-08-30T07:45:09.000Z",
      "leads": 6,
      "sales": 10,
      "saleAmount": 200000,
      "createdAt": "2024-08-29T13:03:59.098Z",
      "updatedAt": "2024-08-30T10:16:12.126Z",
      "projectId": null,
      "testVariants": null,
      "testCompletedAt": null,
      "testStartedAt": null
    }
  }
}
```

</ResponseExample>
