Integration

Produktly integration

Produktly is a digital adoption platform for SaaS products. Read and edit product tours, checklists, smart tips, announcements and micro surveys (create them as drafts and switch them on), publish and edit changelog posts, create and configure feedback and NPS widgets and read their responses and NPS score, read public roadmaps and widget statistics, and create, update, read or delete identified users and their attributes. Authentication is an API key from Settings, API keys, sent as a Bearer token; the key reads and writes all of the company's Produktly data.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Produktly.Built from the 44 Produktly tools below, on the connection you add once.

What you can do with Produktly

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Announcement, 4 operations

  • create_announcementCreate announcementPOSTCreates an announcement (topbar, popup or toast) as a draft. active: true publishes it to the site's visitors at once if it has a title and targeting (plus content for popup and toast). Returns the record, dashboardUrl and note.
  • get_announcementGet announcementGETReturns one announcement: title, HTML content, settings, targeting rules, live status and dashboardUrl. Fetch it before update_announcement, which replaces targeting whole.
  • list_announcementsList announcementsGETLists the company's announcements (topbar, popup and toast messages): id, name, live status, dates and folder, 50 per page by default. Use get_announcement for content, settings and targeting.
  • update_announcementUpdate announcementPATCHChanges only the fields sent: settings are merged, targeting is replaced whole. active: true publishes to visitors, false takes it down. A change that would leave a live announcement unpublishable returns 400.

Checklist, 4 operations

  • create_checklistCreate checklistPOSTCreates an onboarding checklist as a draft. active: true publishes it to the site's users at once if it has at least one item and targeting; otherwise it stays a draft and note says why. Returns the record and dashboardUrl.
  • get_checklistGet checklistGETReturns one checklist: its items (with the ids that completion state is keyed on), settings, targeting rules, live status and dashboardUrl. Fetch it before update_checklist.
  • list_checklistsList checklistsGETLists the company's onboarding checklists: id, name, live status, dates and folder, 50 per page by default. Use get_checklist for items, settings and targeting.
  • update_checklistUpdate checklistPATCHChanges only the fields sent: items and targeting are replaced whole (send items back with their ids from get_checklist), settings merged. active true publishes, false takes it down. Unpublishable live change: 400.

Feedback widget, 4 operations

  • create_feedback_widgetCreate feedback widgetPOSTCreates a feedback widget (a floating beacon collecting categorized feedback) as a draft. active: true publishes it to the site's users at once if it has options and targeting. Returns the record, dashboardUrl and note.
  • get_feedback_widgetGet feedback widgetGETReturns one feedback widget: its options, settings, targeting rules, live status and dashboardUrl (webhook URLs are never returned). Fetch it before update_feedback_widget.
  • list_feedback_widgetsList feedback widgetsGETLists the company's feedback widgets: id, name, live status and creation date, 50 per page by default. Pass a widget id to get_feedback_widget or list_feedback_responses.
  • update_feedback_widgetUpdate feedback widgetPATCHChanges only the fields sent: settings are merged, options and targeting are replaced whole. active true publishes, false takes it down. A change leaving a live widget unpublishable returns 400.

Micro survey, 4 operations

  • create_micro_surveyCreate micro surveyPOSTCreates a micro survey (short in-app survey, one question at a time) as a draft. active: true publishes it to the site's users at once if it has a question and targeting. Returns the record, dashboardUrl and note.
  • get_micro_surveyGet micro surveyGETReturns one micro survey: settings including its questions, targeting rules, live status and dashboardUrl. Fetch it before update_micro_survey.
  • list_micro_surveysList micro surveysGETLists the company's micro surveys: id, name, live status, dates and folder, 50 per page by default. Use get_micro_survey for questions, settings and targeting.
  • update_micro_surveyUpdate micro surveyPATCHChanges only the fields sent: settings are merged (questions sent replace the whole list), targeting is replaced whole. active true publishes, false takes it down. Unpublishable live change: 400.

Nps widget, 4 operations

  • create_nps_widgetCreate nps widgetPOSTCreates an NPS widget (a rating prompt with an optional follow-up question) as a draft. active: true publishes it to the site's users at once if targeting is set. Returns the record, dashboardUrl and note.
  • get_nps_widgetGet nps widgetGETReturns one NPS widget: its settings (scale, question, display rules), targeting rules, live status and dashboardUrl (webhook URLs are never returned). Fetch it before update_nps_widget.
  • list_nps_widgetsList nps widgetsGETLists the company's NPS widgets: id, name, live status and creation date, 50 per page by default. Pass a widget id to get_nps_score, list_nps_responses or get_nps_widget.
  • update_nps_widgetUpdate nps widgetPATCHChanges only the fields sent: settings are merged, targeting is replaced whole. active: true publishes to users, false takes it down. A change that would leave a live widget unpublishable returns 400.

Product tour, 4 operations

  • create_product_tourCreate product tourPOSTCreates a product tour as a draft. active: true publishes it to the site's users at once if it has at least one step and targeting; otherwise it stays a draft and note says why. Returns the record and dashboardUrl.
  • get_product_tourGet product tourGETReturns one product tour: its steps (with the step ids analytics are keyed on), settings, targeting rules, live status and dashboardUrl. Fetch it before update_product_tour.
  • list_product_toursList product toursGETLists the company's product tours: id, name, live status, dates and folder, 50 per page by default. Use get_product_tour for steps, settings and targeting.
  • update_product_tourUpdate product tourPATCHChanges only the fields sent: steps and targeting are replaced whole (send steps back with their ids from get_product_tour), settings merged. active true publishes, false takes it down. Unpublishable live change: 400.

Smart tip, 4 operations

  • create_smart_tipCreate smart tipPOSTCreates a smart tip (tooltip on a page element) as a draft. active: true publishes it to the site's users at once if settings.cssSelector and targeting are set. Returns the record, dashboardUrl and note.
  • get_smart_tipGet smart tipGETReturns one smart tip: title, HTML content, settings (including cssSelector), targeting rules, live status and dashboardUrl. Fetch it before update_smart_tip.
  • list_smart_tipsList smart tipsGETLists the company's smart tips (tooltips and beacons): id, name, live status, dates and folder, 50 per page by default. Use get_smart_tip for content, settings and targeting.
  • update_smart_tipUpdate smart tipPATCHChanges only the fields sent: settings are merged, targeting is replaced whole. active: true publishes to users, false takes it down. A change that would leave a live tip unpublishable returns 400.

User, 4 operations

  • delete_userDelete userDELETEPermanently deletes an identified user and their attributes. Analytics events that reference the user's external id are kept.
  • get_userGet userGETReturns one identified user of your product: their attributes (metadata, as sent with identifyUser or the user tools; personal data) and creation and update times. metadata can be empty for users identified without attributes.
  • replace_userReplace userPUTCreates an identified user or REPLACES all of their attributes with the metadata sent (attributes left out are deleted, including those set in the browser). Prefer update_user for routine syncs.
  • update_userUpdate userPATCHMerges attributes into an identified user's metadata (keys sent overwrite, keys left out are kept, a nested object is replaced whole) and creates the user if it does not exist. To remove attributes use replace_user.

Changelog post, 3 operations

  • create_changelog_postCreate changelog postPOSTCreates a post in a changelog. It stays a draft unless active is true, which publishes it to the changelog's readers at once. tagNames must match existing tags (see list_tags). Returns the post with its id.
  • list_changelog_postsList changelog postsGETLists the posts of one changelog: title, HTML description, release date, live status and tags, 50 per page by default (at most 100), optionally only posts dated within startDate and endDate.
  • update_changelog_postUpdate changelog postPATCHChanges only the fields sent on a changelog post: title, HTML description, release date, tags or live status. active: true publishes it to readers, false unpublishes it. tagNames replaces the post's tags.

Roadmap, 2 operations

  • get_roadmapGet roadmapGETReturns one roadmap with its sections and their items (name, description, vote count, last update, tag). Filter items by text (query), tag names or update date, or keep only the latest N per section.
  • list_roadmapsList roadmapsGETLists the company's public roadmaps with their sections and items (names, descriptions, vote counts, tags), 50 per page by default. Use get_roadmap to search or filter one roadmap.

Changelog, 1 operation

  • list_changelogsList changelogsGETLists the company's changelogs: id, name, live status and creation date, 50 per page by default. Pass a changelog id to list_changelog_posts or create_changelog_post.

Feedback response, 1 operation

  • list_feedback_responsesList feedback responsesGETLists the responses a feedback widget collected: picked option, emoji, message, page URL and, when collected, the sender's email and name (personal data). 50 per page by default, optional date range.

Nps response, 1 operation

  • list_nps_responsesList nps responsesGETLists the individual answers of an NPS widget: rating, follow-up comment, page URL, language and, when known, the user's external id, email and name (personal data). 50 per page by default, optional date range.

Nps score, 1 operation

  • get_nps_scoreGet nps scoreGETReturns the NPS of one widget: npsScore (percent promoters minus percent detractors), totalResponses, and the count and percentage of promoters, passives and detractors, optionally for a date range.

Stats summary, 1 operation

  • get_stats_summaryGet stats summaryGETReturns company-wide usage stats per widget type (tours, checklists, NPS, changelogs...): main and secondary metrics, event counts, change against the previous period and a trend series. Default range: last 7 days.

Tag, 1 operation

  • list_tagsList tagsGETLists the tags that can be attached to changelog posts (id, name, colors), 50 per page by default. Pass tag names to create_changelog_post or update_changelog_post.

Widget stats, 1 operation

  • get_widget_statsGet widget statsGETReturns event counts and unique users per widget of one type (one entry per widget, broken down by event type), or for one widget with entityId. Default range: last 30 days, at most 90.

Use Produktly from Claude Code, Cursor or Codex

Connect Produktly in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Produktly operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Produktly

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Produktly once

    Add your Produktly connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Produktly integration FAQ

What can you do with the Produktly integration?

LiveContext exposes 44 operations on Produktly, covering announcement, checklist, feedback widget and micro survey.

Popular integrations

Browse the whole catalog