Support Docs

Everything you need to set up click tracking on your Webflow sites and receive real-time Slack notifications.

How It Works

The LinkedIn Tracking Dashboard lets you track user interactions on your Webflow sites and receive real-time notifications in Slack. Here is the end-to-end flow:

Create a Company
Add Trackable Elements
Paste Script in Webflow
Users Click Elements
Dashboard + Slack

Key Concepts

Companies
Each company represents a client or project you are tracking. A company has its own Slack channel, tracking script, and set of trackable elements.
Trackable Elements
HTML elements on your Webflow site (buttons, links, etc.) that you want to monitor for clicks. Each element has a unique attribute name used in the tracking code.
Pages
Organize trackable elements by the page they appear on. This lets you track the same element types (e.g. "apply_button") across different pages of a site.
Templates
Reusable sets of trackable elements. Create a template once, then apply it to any company or page to quickly set up common tracking configurations.

Quick Start Guide

Get up and running in under 10 minutes. Follow these steps in order:

1
Create a Company

Go to Page Tracking and click Add Company. Enter the company name, website URL, and a Slack channel name (the bot will create the channel automatically if it does not already exist).

2
Create Pages

Open the company detail view. You'll be prompted to create your first page (e.g. "Homepage", "Pricing", "About"). Pages are required before you can add trackable elements — they organize your elements by the site pages they appear on.

3
Add Trackable Elements

With a page selected, click Add Element. Give each element an attribute name (e.g. apply_button, learn_more_link), a display name, and select the page it belongs to. You can also apply a template to bulk-add elements.

4
Copy the Tracking Code Snippet

From the company detail page, click the Get Code button. This generates a JavaScript snippet customized for that company and its elements.

5
Paste It in Webflow

In Webflow, go to Project Settings > Custom Code > Footer Code (the section labeled "Before </body> tag"). Paste the entire tracking script there.

6
Add Data Attributes to Elements

In the Webflow Designer, select the element you want to track. Open the element settings panel and add the required custom attributes: data-track-url and data-track-[attribute_name]="true". See the Webflow Integration section below for details.

7
Publish Your Webflow Site

Click Publish in Webflow to make your changes live. The tracking script will only work on the published site, not in the Webflow Designer preview.

8
Set Up Slack

Make sure the LinkedIn Tracker bot is invited to the Slack channel you configured for this company. Type /invite @LinkedIn Tracker in the channel if it was not added automatically.

Tip

You can test that everything is working by visiting your published site and clicking a tracked element. Within a few seconds, you should see the click logged in the Analytics dashboard and a notification posted to your Slack channel.

Webflow Integration

Adding the Tracking Script

The tracking script is a small piece of JavaScript that listens for clicks on elements with specific data attributes. It must be placed in the footer of your Webflow site so it loads after all page content.

  1. In the LinkedIn Tracking Dashboard, open your company and click Get Code.
  2. Copy the entire script to your clipboard.
  3. In Webflow, navigate to Project Settings (the gear icon).
  4. Go to the Custom Code tab.
  5. Scroll down to the Footer Code section (labeled "Before </body> tag").
  6. Paste the script and click Save Changes.
  7. Publish your site for the changes to take effect.

Note

The script only runs on your published Webflow site. It will not execute inside the Webflow Designer preview. Always publish before testing.

Adding Data Attributes

Every element you want to track needs two custom attributes added in the Webflow Designer:

  • data-track-url (required) — The destination URL the user will be redirected to after their click is recorded. This is typically a LinkedIn job posting, company page, or any external link.
  • data-track-[attribute_name]="true" (required) — Identifies which trackable element was clicked. Replace [attribute_name] with the exact attribute name you defined in the dashboard (e.g. data-track-apply_button="true").

To add these in Webflow:

  1. Select the element in the Webflow Designer.
  2. Open the Settings panel (gear icon on the right).
  3. Scroll down to Custom Attributes.
  4. Click the + button and add each attribute as a name/value pair.

Single Element Example

Suppose you created a trackable element with the attribute name apply_button and want it to redirect users to a LinkedIn job page. Your HTML would look like this:

<a href="#"
   data-track-url="https://linkedin.com/company/acme/jobs/12345"
   data-track-apply_button="true">
  Apply Now
</a>

When a user clicks this link, the tracking script intercepts the click, logs it to the dashboard, sends a Slack notification, and then redirects the user to the URL specified in data-track-url.

Important

Set the element's href to # (or remove it entirely for non-anchor elements). The tracking script handles the redirect using the data-track-url value. If you set a real href, the browser may navigate away before the click is recorded.

Multiple Elements on the Same Page

You can track as many elements as you need on a single page. Each one just needs its own unique data-track-[attribute_name] attribute:

<!-- Hero CTA button -->
<a href="#"
   data-track-url="https://linkedin.com/company/acme/jobs/12345"
   data-track-apply_button="true">
  Apply Now
</a>

<!-- Learn more link in the about section -->
<a href="#"
   data-track-url="https://linkedin.com/company/acme/about"
   data-track-learn_more_link="true">
  Learn More About Us
</a>

<!-- Footer contact link -->
<a href="#"
   data-track-url="https://linkedin.com/company/acme"
   data-track-company_profile="true">
  View Company Profile
</a>

Organizing with Pages

If your Webflow site has multiple pages (e.g. a homepage, careers page, and about page), you can organize your trackable elements by page in the dashboard. This lets you:

  • Reuse the same element attribute names across different pages (e.g. apply_button on both the homepage and careers page).
  • Filter analytics by page to see which pages drive the most engagement.
  • Keep your element list organized as it grows.

Tip

You only need one tracking script per Webflow project. The same script works across all pages of your site. Elements are identified by their data attributes, not by which page they are on.

Slack Integration

Setting Up a Slack Channel

When you create a company, the dashboard will attempt to create a Slack channel automatically using the channel name you provide. If the channel already exists, it will use the existing one.

You can also configure the Slack channel after company creation by editing the company settings.

Inviting the Bot

If the bot was not automatically added to the channel, you can invite it manually by typing the following command in the Slack channel:

/invite @LinkedIn Tracker

Notification Format

When a tracked element is clicked, the bot posts a notification to the configured Slack channel. The format differs by element type:

Webflow elements include:

  • Element name — which tracked element was clicked
  • Destination URL — where the user was redirected
  • Page URL — which page the click originated from
  • Timestamp — the full date and time of the click
  • User agent / referrer — browser and source information when available

Rive elements include:

  • Component name — the display name of your Rive element (e.g. "Hero Video CTA")
  • Interaction name — the specific trigger or button pressed (e.g. "Play Started", "Option1")
  • Page URL — which page the interaction happened on
  • Timestamp — the full date and time of the interaction

Notification timestamps always show the full date (e.g. "February 26, 2026 at 5:01 PM") so you can tell exactly when an interaction happened, even when viewing older notifications.

Troubleshooting Slack

Bot is not posting notifications
Make sure the LinkedIn Tracker bot has been invited to the Slack channel. Also verify the channel name in the company settings matches exactly (no leading #).
Channel not found error
Double-check that the channel exists in your Slack workspace and that the channel name is spelled correctly in the dashboard. Channel names are case-sensitive and cannot contain spaces.
Notifications are delayed
There is usually a 1-3 second delay between a click being recorded and the Slack notification posting. If notifications are consistently delayed by more than 10 seconds, check your Cloudflare Workers logs for errors.

Templates

What Are Templates?

Templates are reusable collections of trackable elements. If you frequently set up the same set of elements for different companies (e.g. every client site needs an "Apply Now" button, a "Learn More" link, and a "Company Profile" link), you can save those elements as a template and apply it in one click.

Creating a Template

  1. Navigate to the Templates page from the sidebar.
  2. Click Create Template.
  3. Give the template a name and optional description.
  4. Add elements to the template by clicking Add Element inside the template detail view.
  5. For each element, specify the display name and type (Webflow or Rive). Webflow elements also need an attribute name; Rive elements are auto-configured.

Applying a Template

To apply a template to a company:

  1. Open the company detail page on Page Tracking.
  2. Click the Apply Template button.
  3. Select the template you want to apply.
  4. Choose the target page (or create a new one).
  5. The template elements will be created on the selected page.

Duplicate Handling

Note

When applying a template, any elements that already exist on the target page (matching by attribute name) will be skipped. This prevents duplicate elements from being created. You will see a notification indicating how many elements were added and how many were skipped.

Tracking Elements

Element Types

The dashboard supports two types of trackable elements:

  • Webflow — Standard click tracking for HTML elements like links, buttons, and divs. Uses data-track-* attributes in your HTML. You define the attribute name and add it to each element you want to track.
  • Rive — Fully automatic tracking for Rive interactive components. The script automatically intercepts all Rive instances on the page and captures button presses, state changes, and trigger names. You only need to provide a display name — no manual configuration of animation names or event types required.

Creating Webflow Elements

  1. Open the company detail view from Page Tracking.
  2. Click Add Element.
  3. Select Webflow as the element type.
  4. Enter the attribute name (e.g. apply_button). This is what gets used in the data-track-* attribute on your site.
  5. Enter a display name (e.g. "Apply Button"). This is a human-readable label used in the dashboard and Slack notifications.
  6. Select the page this element appears on. Pages must be created first.

Creating Rive Elements

  1. Open the company detail view from Page Tracking.
  2. Click Add Element.
  3. Select Rive as the element type.
  4. Enter a display name (e.g. "Hero Video CTA"). The attribute name is auto-generated.
  5. Select the page this element appears on.

How Rive Auto-Detection Works

When at least one Rive element exists for a company, the generated tracking script includes an automatic Rive interceptor. This hooks into the Rive constructor before any animations load and captures all state changes, Rive events, and canvas clicks. Trigger names from button presses are passed through automatically in Slack notifications and analytics. You do not need to know the Rive trigger names in advance.

Understanding Rive Events

Rive animations fire different types of events. The tracker categorizes them automatically:

  • Play Started — Tracked once per session when the animation first plays. This tells you a visitor engaged with the animation.
  • Named triggers — Button presses and interactive elements inside the Rive animation (e.g. "Option1", "Submit", "Next Slide"). These are the state machine names defined in the Rive editor.
  • Canvas Click — A fallback event when someone clicks the animation canvas but no specific Rive trigger fires.

Play, pause, and stop state changes are not tracked as clicks or notifications. They are used internally to measure watch time only.

Naming Rive Triggers

The interaction names shown in Slack and the dashboard come directly from your Rive file's state machine. To get clear, readable names in analytics (e.g. "Apply Now" instead of "state_47"), name your triggers descriptively in the Rive editor before publishing.

Editing and Deleting Elements

From the company detail view, you can:

  • Edit an element by clicking the edit (pencil) icon. You can change the display name and page assignment. Changing the attribute name of Webflow elements is not recommended after the tracking script has been deployed, as it will break existing tracking.
  • Delete an element by clicking the delete (trash) icon. This removes the element from the dashboard but does not affect your Webflow site. The data attribute will simply stop being tracked.

Important

For Webflow elements, attribute names must be unique within the same page. They should use lowercase letters, numbers, and underscores only (e.g. apply_button, hero_cta_2). Rive elements have auto-generated attribute names, so you don't need to worry about this.

Updating Scripts After Changes

Note

When you add or remove Rive elements from a company, the tracking script is regenerated. You should re-copy the script from View & Copy Script and replace the existing one on your pages to ensure the Rive interceptor is included. Webflow element changes also require a script update if you add new tracked attributes.

Data Attributes Format Reference (Webflow Only)

Attribute format

The data attribute for a Webflow trackable element always follows this pattern: data-track-{attribute_name}="true". The attribute_name portion is whatever you entered in the dashboard when creating the element. For example, if you named your element view_jobs, the HTML attribute will be data-track-view_jobs="true". Rive elements do not use data attributes — they are tracked automatically via script interception.

Analytics

Dashboard Overview

The Analytics page gives you a high-level view of all tracked clicks across your companies. You can see:

  • Total clicks across all companies in the selected date range.
  • Click trends over time, visualized as a chart.
  • Top companies ranked by click volume.
  • Top elements showing which tracked elements get the most engagement.

Date Range Filtering

Use the date range picker at the top of the Analytics page to filter data by specific time periods. You can select preset ranges (Last 7 days, Last 30 days, etc.) or define a custom range. All charts and tables on the page update in real time as you change the date range.

Company Drill-Down

Click on any company card in the analytics view to drill down into that company's data. The drill-down view shows:

  • Pages Breakdown — Click volume per page with distribution bars.
  • Top Elements — Which tracked elements get the most engagement, with watch time stats for Rive elements.
  • Rive Interactions — A detailed breakdown of which specific buttons, triggers, and events were fired within Rive animations. Each row shows the interaction name (e.g. "Play Started", "Option1"), the component it belongs to, the page, and how many times it occurred.

Rive Interactions Table

The Rive Interactions table appears on both the analytics drill-down and the company detail page when Rive event data exists. It shows:

  • Interaction — The name of the trigger or event (e.g. "Play Started", "Submit", "Canvas Click").
  • Component — Which Rive element the interaction belongs to.
  • Page — Which page the interaction happened on.
  • Count — How many times this specific interaction occurred.
  • Last Seen — When this interaction last happened.

This lets you see exactly which buttons visitors are pressing inside your Rive animations, helping you understand engagement patterns beyond just total click counts.

Understanding Click Data

Each recorded click includes the following information:

  • Element — Which trackable element was clicked.
  • Page URL — The full URL of the page where the click happened.
  • Destination URL — Where the user was redirected to after clicking (Webflow only).
  • Timestamp — The exact date and time of the click.
  • Event Name — For Rive elements, the specific trigger or state that fired.
  • Referrer — The URL the user came from before visiting your page.
  • User Agent — The browser and operating system of the user.

Troubleshooting / FAQ

Clicks are not being tracked
Check the following:
  • The tracking script is pasted in the Footer Code section in Webflow (not the Header Code).
  • Every tracked element has a data-track-url attribute with a valid URL.
  • Every tracked element has a data-track-[attribute_name]="true" attribute that matches an element defined in the dashboard.
  • Your Webflow site has been published after adding the code and attributes.
  • Open your browser's developer console (F12) and look for any JavaScript errors related to the tracking script.
Slack notifications are not working
Check the following:
  • The LinkedIn Tracker bot has been invited to the Slack channel (/invite @LinkedIn Tracker).
  • The channel name in the dashboard matches the actual Slack channel name exactly (no leading # symbol).
  • The bot has the required permissions in your Slack workspace (chat:write, channels:manage).
Template elements are not appearing after applying a template
Elements with the same attribute name that already exist on the target page will be skipped. Check if the elements you expected to see were already created on that page. You can verify this by looking at the page's element list in the company detail view.
Analytics shows no data
The analytics dashboard only shows data for clicks that have been recorded after your tracking setup was completed. If you just set everything up, try clicking a tracked element on your published site and wait a few seconds, then refresh the Analytics page. Also check that you have the correct date range selected.
The tracking script is not intercepting clicks
Make sure the element's href is set to # or is empty. If the element has a real URL in its href, the browser may navigate away before the tracking script can process the click. The script uses data-track-url for the redirect destination, not href.
Can I track non-link elements (divs, buttons, images)?
Yes. The tracking script listens for click events on any element that has the data-track-url attribute, regardless of the element type. You can add tracking attributes to divs, buttons, images, spans, or any other HTML element.
How do I track the same element on multiple pages?
Create separate trackable elements in the dashboard for each page, using the same attribute name but assigned to different pages. On each Webflow page, add the same data-track-* attributes to the relevant elements. The analytics will show which page each click came from.
Why do Rive interactions show names like "state_47" instead of readable names?
The interaction names come directly from your Rive file's state machine. Open the file in the Rive editor and rename your triggers and states to descriptive names (e.g. "Apply Now", "Next Slide"). After re-exporting and publishing, the dashboard and Slack notifications will use the new names.
Why am I only getting one "Play Started" notification per visitor?
This is by design. "Play Started" tracks the first time a visitor plays the Rive animation in a session. Subsequent play/pause actions are not sent as notifications to avoid spam. They are instead used to calculate watch time, which appears in the analytics.
I see "Canvas Click" events but not specific button names
"Canvas Click" is a fallback event that fires when someone clicks the Rive canvas but no named Rive trigger was detected. This usually means the Rive animation doesn't use RiveEvent listeners or named state triggers for that interaction. To get specific button names, ensure your Rive file uses named triggers or RiveEvents for interactive elements.