Guide for Lovable

Add onboarding to your Lovable app

Lovable gets your app built. Produktly adds the product tours, checklists, feedback and changelog your first users need, and Lovable does most of the setup from three prompts.

Set it up in five steps

  1. 1

    Create a Produktly account and copy your token

    Start a 14-day trial, then open Settings > Installation and copy your Client Auth Token. This token is public: it sits in your app's HTML and only tells the script which account to load.

  2. 2

    Ask Lovable to install the script

    Paste this into the Lovable chat, with your token in place of YOUR_CLIENT_TOKEN. Lovable projects created since May 13, 2026 use TanStack Start and older ones use React + Vite. The prompt covers both. If you prefer to do it by hand in Code mode, the snippet goes in index.html in a React + Vite project.

    Prompt for Lovable

    Add the Produktly script to this app so it loads on every page.
    Put it in the document head of the root layout (index.html if this
    is a React + Vite project). Use this snippet exactly as it is, and
    do not change the id or clientToken lines:
    
    <script>
      (function (w, d, f) {
        w.Produktly=w.Produktly||new Proxy(function(){},{get:function(_,n){return function(){w.ProduktlyQ=(w.ProduktlyQ||[]).concat([[n,Array.prototype.slice.call(arguments)]])}},apply:function(_,__,a){w.ProduktlyQ=(w.ProduktlyQ||[]).concat([["apply",a]])}})
        var a = d.getElementsByTagName('head')[0];
        var s = d.createElement('script');
        s.async = 1;
        s.src = f;
        s.setAttribute('id', 'produktlyScript');
        s.dataset.clientToken = "YOUR_CLIENT_TOKEN";
        a.appendChild(s);
      })(window, document, "https://public.produktly.com/js/main.js");
    </script>

    To check it worked, open your published app, open the browser console and type window.Produktly. It should be an object. Run window.Produktly.debug() for verbose logging while you test.

  3. 3

    Tell Produktly who is signed in

    Identifying users lets you show a tour only to new signups, keeps tour progress across devices, and lets you target by plan or signup date. Adjust the field names to match your auth, whether that is Lovable Cloud, Supabase or something else.

    Prompt for Lovable

    When a user is signed in, call
    window.Produktly.identifyUser(user.id, { email: user.email, createdAt: user.created_at })
    and call it again when a session is restored on page load.
    When the user signs out, call window.Produktly.clearCurrentUser().

    Any extra fields you pass (plan, role, company) become targeting attributes in the Produktly dashboard automatically.

  4. 4

    Give the important elements stable names

    Lovable rewrites components as you keep prompting, so generated class names change. A tour step pinned to a class name breaks on the next edit. A data-produktly attribute is part of your code rather than generated styling, so it stays put as long as the element does. Name the elements your tour will point at:

    Prompt for Lovable (use your own elements)

    Add data-produktly attributes to these elements and change nothing else:
    - the "New project" button: data-produktly="new-project-btn"
    - the project list: data-produktly="project-list"
    - the settings link in the sidebar: data-produktly="settings-link"

    In the tour editor you then target a step with a selector like [data-produktly='new-project-btn'].

  5. 5

    Build the first tour

    Create a product tour in the Produktly dashboard, add highlight steps with the selectors from step 4, and preview it on your published app with the Produktly Chrome extension. Target it at new users on the page they land on after signup. Keep it short: in our 2026 benchmarks, tours with 1 to 2 steps had a median completion rate of 73%, against 8% for tours with 9 or more.

Optional: connect Produktly to the Lovable chat

Lovable can use any remote MCP server as a chat connector, on every plan. Connect Produktly's and Lovable's agent gets live context while it builds: our setup guide, your widgets, and your feedback and NPS responses. Connectors are only used in the chat and are never part of your published app.

  1. In Produktly, open Settings > Private Keys and create a key.
  2. In Lovable, open the Connectors dashboard, click + and choose MCP server.
  3. Enter the URL https://api.produktly.com/api/mcp, choose bearer token authentication and paste the private key.

Keep the private key in the connector settings only. Unlike the Client Auth Token, it gives write access to your account. The same server works with Claude Code, Cursor and other MCP clients, where agents can also create draft tours and checklists for you. See the MCP server docs for details.

What to add after the first tour

The same script runs all of these. There is nothing else to install.

Onboarding checklist

A short list of setup tasks that ticks itself off as users complete them. Good for apps where value needs a few steps.

Feedback widget

Early users will tell you what is broken if asking is easy. Collect it in the app instead of in scattered DMs.

Changelog

You ship several times a week with Lovable. A changelog shows users the product is moving and brings them back.

Public roadmap

Let users vote on what you build next, so your next prompt is aimed at what they actually want.

Questions

Does the script slow down my Lovable app?
It loads asynchronously, so it does not block your app from rendering. Widgets appear once the script has loaded.
Where should I build and test tours?
On your published app, either the lovable.app address or your custom domain. That is the page your users see, and tour targeting is based on its URLs.
Is it safe to put the token in my app?
Yes, the Client Auth Token is meant to be public. Your private API key is a different thing: it is only for the MCP server and the REST API, and it must never go into your app code.
What does it cost?
Plans start at โ‚ฌ19 per month, or โ‚ฌ16 per month billed yearly. Every plan starts with a 14-day trial, and a card is required to start it.

Give your first users a guided start