# Productlane

Productlane is a customer support and feedback system designed for modern companies, built on Linear.

- **Category:** customer support
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 39
- **Triggers:** 0
- **Slug:** `PRODUCTLANE`
- **Version:** 20260223_00

## Tools

### Create Changelog Entry

**Slug:** `PRODUCTLANE_CREATE_CHANGELOG`

Tool to create a new changelog entry in Productlane. Use when you need to document product updates, new features, or bug fixes. The content supports markdown format including headings, bulleted lists, and other markdown features.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | No | Publication date for the changelog entry in ISO 8601 format (e.g., '2024-01-15T10:30:00Z'). If not provided, defaults to the current timestamp. |
| `title` | string | Yes | Title of the changelog entry. Must be at least 1 character long. |
| `content` | string | Yes | Content of the changelog entry. Supports markdown formatting including headings, bulleted lists, code blocks, and other markdown features. |
| `published` | boolean | No | Whether the changelog entry should be published immediately. Defaults to false (draft mode). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Company

**Slug:** `PRODUCTLANE_CREATE_COMPANY`

Tool to create a new company in Productlane. Use when you need to add a company record with optional domain-based contact auto-linking. Authentication required via Bearer token.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Company name. This is the only required field. |
| `size` | integer | No | Company size (number of employees). Can be null. |
| `tierId` | string | No | Tier ID for Linear customer integration. Can be null. |
| `autoAdd` | boolean | No | Automatically add contacts with matching email domains to this company. When enabled, existing and future contacts whose email domains match the company's domains will be automatically linked. Defaults to false if not provided. |
| `domains` | array | No | List of company domains (e.g., ['example.com', 'example.co.uk']). Used for automatic contact linking. Each domain must be 1-63 characters, lowercase alphanumeric with hyphens, matching pattern: [0-9a-z-]+\.(?:(?:co\|or\|gv\|ac\|com)\.)?[a-z]{2,7}$ |
| `revenue` | integer | No | Company revenue. Can be null. |
| `statusId` | string | No | Status ID for Linear customer integration. Can be null. |
| `tierName` | string | No | Tier name for Linear customer integration (e.g., 'Enterprise', 'Pro'). Can be null. |
| `statusName` | string | No | Status name for Linear customer integration (e.g., 'Active', 'Churned'). Can be null. |
| `externalIds` | array | No | External identifiers from other systems (e.g., CRM IDs, customer IDs). Each ID must be 1-255 characters. Useful for integrating with external systems. |
| `statusColor` | string | No | Status color for Linear customer integration (hex color code or color name). Can be null. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Contact

**Slug:** `PRODUCTLANE_CREATE_CONTACT`

Tool to create a new contact in your Productlane workspace with optional company linking. Use when adding new contacts to track customer interactions and feedback.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Contact name (optional, 1-255 characters). The display name for the contact. |
| `email` | string | Yes | Contact email address (required, max 254 characters). Must be a valid email format. |
| `companyId` | string | No | Associated company ID (optional, 1-255 characters). Links the contact to an existing company in your workspace. |
| `companyName` | string | No | Company name (optional, 1-255 characters). Can be used to create or reference a company by name. |
| `companyExternalId` | string | No | External company identifier (optional, 1-255 characters). Used to reference companies from external systems. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Feedback

**Slug:** `PRODUCTLANE_CREATE_FEEDBACK`

Tool to create new feedback in Productlane. Use when submitting user feedback, feature requests, or bug reports through the API. This is equivalent to adding feedback through the Productlane widget or portal. Requires email, feedback text, and pain level.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Name of the person submitting the feedback. Optional but helpful for attribution. |
| `text` | string | Yes | The feedback content. This is the main text of the feedback submission. |
| `email` | string | Yes | Email address of the person submitting the feedback. Must be a valid email format. |
| `notify` | object | No | Notification preferences for the feedback. |
| `origin` | string ("INAPP" | "PORTAL" | "SUPPORT_PORTAL" | "API" | "SLACK" | "SLACK_CONNECT" | "INTERCOM" | "INTERCOM_ATTACHMENT" | "ZENDESK_ATTACHMENT" | "ZENDESK" | "FRONT_ATTACHMENT" | "EMAIL" | "ZAPIER" | "HUBSPOT" | "PLAIN" | "CALENDAR" | "WIDGET" | "AI_CHAT" | "UPVOTE") | No | Source or channel from which the feedback originated. |
| `issueId` | string | No | ID of an existing issue to associate this feedback with. Use when linking feedback to a tracked issue. |
| `painLevel` | string ("UNKNOWN" | "LOW" | "MEDIUM" | "HIGH") | Yes | The pain level or severity of the feedback. Indicates how critical or urgent this feedback is. |
| `projectId` | string | No | ID of the project to associate this feedback with. Use when organizing feedback by project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Insight

**Slug:** `PRODUCTLANE_CREATE_INSIGHT`

Tool to create a new insight/thread in Productlane workspace. Use when you need to capture customer feedback, feature requests, or bug reports.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `text` | string | Yes | Thread content. Can be HTML formatted. This is the main content of the insight. |
| `title` | string | No | Title of the insight. Optional, but recommended for better organization. |
| `notify` | object | No | Notification settings for the insight. |
| `origin` | string ("INAPP" | "PORTAL" | "SUPPORT_PORTAL" | "API" | "SLACK" | "SLACK_CONNECT" | "INTERCOM" | "INTERCOM_ATTACHMENT" | "ZENDESK_ATTACHMENT" | "ZENDESK" | "FRONT_ATTACHMENT" | "EMAIL" | "ZAPIER" | "HUBSPOT" | "PLAIN" | "CALENDAR" | "WIDGET" | "AI_CHAT" | "UPVOTE") | No | Origin source of the insight. |
| `issueId` | string | No | ID of an issue to link with this insight. |
| `companyId` | string | No | ID of the company to associate with this insight. |
| `contactId` | string | No | ID of an existing contact to associate with this insight. |
| `painLevel` | string ("UNKNOWN" | "LOW" | "MEDIUM" | "HIGH") | Yes | Pain level indicating priority or severity of the insight. Required field. |
| `projectId` | string | No | ID of the project to associate with this insight. |
| `contactName` | string | No | Name of the contact associated with this insight. |
| `contactEmail` | string | Yes | Email address of the contact associated with this insight. Required field. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Thread

**Slug:** `PRODUCTLANE_CREATE_THREAD`

Tool to create a new thread in Productlane. Use when you need to create feedback, feature requests, or bug reports from users.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Optional additional name field. |
| `text` | string | Yes | Main content/body text of the thread. |
| `email` | string | Yes | Email address of the person creating the thread. Must be a valid email format with max length of 254 characters. |
| `title` | string | Yes | Title of the thread. Maximum length is 512 characters. |
| `actorName` | string | Yes | Name of the person creating the thread. |
| `painLevel` | string ("UNKNOWN" | "LOW" | "MEDIUM" | "HIGH") | Yes | Pain level indicating the severity or impact of the feedback. Valid values: UNKNOWN, LOW, MEDIUM, HIGH. |
| `actorImage` | string | No | Optional URL to an avatar/profile image for the person creating the thread. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Upvote

**Slug:** `PRODUCTLANE_CREATE_UPVOTE`

Tool to create an upvote for a project or issue. Use when you need to record user support for a project or issue. Either projectId or issueId must be provided.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address of the person upvoting. Must be a valid email format (max 254 characters). |
| `issueId` | string | No | UUID of the issue to upvote. Either projectId or issueId must be provided, but not both. |
| `projectId` | string | No | UUID of the project to upvote. Either projectId or issueId must be provided, but not both. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Company

**Slug:** `PRODUCTLANE_DELETE_COMPANY`

Tool to delete a company by its unique ID. Use when you need to permanently remove a company and all associated data from Productlane.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the company to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Contact

**Slug:** `PRODUCTLANE_DELETE_CONTACT`

Tool to delete a contact by ID. Use when you need to permanently remove a contact from Productlane. Authentication is required and you can only delete your own contacts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the contact to delete. You can only delete your own contacts. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Upvote

**Slug:** `PRODUCTLANE_DELETE_UPVOTE`

Tool to delete an upvote by its unique ID. Use when removing a previously cast upvote on an issue or project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the upvote to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Enable Productlane Widget

**Slug:** `PRODUCTLANE_ENABLE_WIDGET`

Tool to enable the Productlane widget. Use after confirming the widget is currently disabled.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Changelog

**Slug:** `PRODUCTLANE_GET_CHANGELOG`

Tool to retrieve a published changelog by ID from Productlane. Use when you need to fetch details about a specific changelog entry. No authorization is required for published changelogs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `language` | string | No | The language code for the changelog content. If not specified, defaults to the workspace's default language. |
| `changelog_id` | string | Yes | The unique identifier of the changelog to retrieve. |
| `workspace_id` | string | Yes | The unique identifier of the workspace containing the changelog. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Company by ID

**Slug:** `PRODUCTLANE_GET_COMPANY`

Tool to retrieve a company by its unique ID. Use when you need detailed information about a specific company including its metadata, integrations, and associated data.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier (UUID) of the company to retrieve. |
| `groupUpvotes` | boolean | No | Whether to group upvotes in the response. When true, upvotes are grouped by various criteria. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Contact

**Slug:** `PRODUCTLANE_GET_CONTACT`

Tool to retrieve a contact by ID or email from Productlane. Use when you need to fetch details about a specific contact in your workspace. Authentication is required and you can only access contacts that belong to your workspace.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier (UUID) or email address of the contact to retrieve. You can only get contacts that belong to your workspace. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Help Center Article

**Slug:** `PRODUCTLANE_GET_HELP_CENTER_ARTICLE`

Tool to retrieve a help center article by its ID. Use when you need to fetch details, content, and metadata for a specific help center article.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `language` | string | No | Optional language code to retrieve the article in a specific language. |
| `articleId` | string | Yes | The unique identifier of the help center article to retrieve. |
| `workspaceId` | string | Yes | The unique identifier of the workspace containing the help center article. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Insight

**Slug:** `PRODUCTLANE_GET_INSIGHT`

Tool to retrieve an insight/thread by its ID. Use when you need to fetch details about a specific piece of feedback or customer insight.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the insight/thread to retrieve. |
| `includeConversation` | string ("true" | "false") | No | Whether to include conversation data in the response. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Issue by ID

**Slug:** `PRODUCTLANE_GET_ISSUE`

Tool to retrieve a specific issue by its ID from a workspace. Use when you need to fetch detailed information about an issue including its title, description, status, priority, and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `issue_id` | string | Yes | The unique identifier of the issue to retrieve. |
| `language` | string | No | Optional language code for localized content. If not provided, defaults to the workspace's default language. |
| `workspace_id` | string | Yes | The unique identifier of the workspace containing the issue. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Linear Customer Options

**Slug:** `PRODUCTLANE_GET_LINEAR_OPTIONS`

Tool to retrieve available Linear customer statuses and tiers for your workspace. Use when you need to know the valid Linear options before creating or updating companies. Returns null for both statuses and tiers if Linear is not connected.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project

**Slug:** `PRODUCTLANE_GET_PROJECT`

Tool to retrieve a project by its ID from a workspace. Use when you need to fetch details about a specific project including its name, description, progress, and associated metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `language` | string | No | Language code for localized content (e.g., 'en', 'de'). If not provided, returns content in the default language. |
| `project_id` | string | Yes | Project ID to retrieve. |
| `workspace_id` | string | Yes | Workspace ID containing the project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Workspace

**Slug:** `PRODUCTLANE_GET_WORKSPACE`

Tool to fetch workspace details by ID. Use when you need to retrieve workspace configuration, branding, or latest changelog information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the workspace to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Invite User to Workspace

**Slug:** `PRODUCTLANE_INVITE_USER`

Tool to invite a new user to your Productlane workspace. An invitation email with a join link will be sent to the user. Only admins can invite users.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Full name of the user to invite |
| `role` | string ("ADMIN" | "USER" | "VIEWER") | Yes | Role to assign to the invited user. ADMIN has full permissions, USER can view and edit, VIEWER has read-only access. |
| `email` | string | Yes | Email address of the user to invite. Must be a valid email format with max 254 characters. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Changelogs

**Slug:** `PRODUCTLANE_LIST_CHANGELOGS`

Tool to list all published changelogs for a workspace by ID. Use when you need to retrieve changelog entries for a specific Productlane workspace.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `language` | string | No | Optional language filter for changelogs. If provided, only changelogs in the specified language will be returned. |
| `workspaceId` | string | Yes | The unique identifier of the workspace to list changelogs for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Companies

**Slug:** `PRODUCTLANE_LIST_COMPANIES`

Tool to list all companies in Productlane. Use 'take' and 'skip' parameters to paginate through results. Supports filtering by domain or name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Filter companies by name. Returns companies matching this name (case-sensitive). |
| `skip` | integer | No | Number of companies to skip for pagination. Use with 'take' to paginate through results. |
| `take` | integer | No | Number of companies to retrieve. Defaults to 10 if not specified. Maximum recommended is 100. |
| `domain` | string | No | Filter companies by domain. Returns companies that have this domain associated. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List contacts

**Slug:** `PRODUCTLANE_LIST_CONTACTS`

Tool to retrieve all contacts for your workspace. Use when you need to list contacts with optional pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of contacts to skip for pagination. Use this to retrieve contacts starting from a specific position. |
| `take` | integer | No | Maximum number of contacts to return in a single request. Use this to limit the response size. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Help Center Articles

**Slug:** `PRODUCTLANE_LIST_HELP_CENTER_ARTICLES`

Tool to list all help center articles for a specific workspace. Use when you need to retrieve documentation or support articles from a workspace's help center.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `language` | string | No | Filter articles by language code (e.g., 'en', 'de', 'fr'). If not provided, returns articles in all languages. |
| `workspaceId` | string | Yes | The unique identifier of the workspace to list help center articles for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Insights

**Slug:** `PRODUCTLANE_LIST_INSIGHTS`

Tool to list all threads/insights for your workspace with optional filtering. Use when you need to retrieve insights filtered by state, issue, or project, with support for pagination via 'take' and 'skip' parameters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | integer | No | Number of records to skip for pagination. Use with 'take' to implement pagination. |
| `take` | integer | No | Maximum number of records to return. Use with 'skip' to implement pagination. |
| `state` | string ("NEW" | "PROCESSED" | "COMPLETED" | "SNOOZED" | "UNSNOOZED") | No | State of the insight/thread. |
| `issueId` | string | No | Filter insights by issue ID. Returns only insights linked to the specified issue. |
| `projectId` | string | No | Filter insights by project ID. Returns only insights linked to the specified project. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Productlane Issues

**Slug:** `PRODUCTLANE_LIST_ISSUES`

Tool to retrieve all issues from a Productlane workspace. Use when you need to fetch issues from a workspace that has their portal/roadmap published.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `language` | string | No | Language code for localized content (e.g., 'en', 'de') |
| `workspace_id` | string | Yes | Workspace ID to retrieve issues from. The workspace must have their portal/roadmap published. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Workspace Members

**Slug:** `PRODUCTLANE_LIST_MEMBERS`

Tool to retrieve all members of your workspace with their roles and user information. Returns memberships sorted by role (admins first).

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Projects

**Slug:** `PRODUCTLANE_LIST_PROJECTS`

Tool to retrieve all projects within a workspace. Use when you need to list available projects from a published Productlane workspace portal or roadmap.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `language` | string | No | Optional language code for localized project content (e.g., 'en', 'de', 'fr'). |
| `workspace_id` | string | Yes | The unique identifier of the workspace. The workspace's portal or roadmap must be published to retrieve projects. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Company

**Slug:** `PRODUCTLANE_UPDATE_COMPANY`

Tool to update an existing company record in Productlane by its unique identifier. Use when you need to modify company details such as name, domains, revenue, size, status, tier, or external IDs. All fields except the company ID are optional.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier (UUID) of the company to update |
| `name` | string | No | The name of the company |
| `size` | number | No | The company size (typically number of employees) as a number. Set to null to clear the value. |
| `tierId` | string | No | The unique identifier of the company's tier/plan. Set to null to clear the value. |
| `autoAdd` | boolean | No | Whether to automatically add new users from the company's domains to this company |
| `domains` | array | No | List of domain names associated with the company (e.g., ['acme.com', 'example.co.uk']). Each domain must be 1-63 characters and match the pattern: lowercase letters, numbers, hyphens, with valid TLD. |
| `revenue` | number | No | The company's revenue as a number. Set to null to clear the value. |
| `statusId` | string | No | The unique identifier of the company's status. Set to null to clear the value. |
| `tierName` | string | No | The name of the company's tier/plan (e.g., 'Enterprise', 'Professional', 'Free'). Set to null to clear the value. |
| `statusName` | string | No | The name of the company's status (e.g., 'Active', 'Inactive', 'Trial'). Set to null to clear the value. |
| `externalIds` | array | No | List of external identifiers for the company from other systems (e.g., CRM IDs, customer IDs). Each ID must be 1-255 characters. |
| `statusColor` | string | No | The color code for the company's status (e.g., hex color). Set to null to clear the value. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Contact

**Slug:** `PRODUCTLANE_UPDATE_CONTACT`

Tool to update an existing contact in Productlane. Use when you need to modify contact details such as name, email, or company associations. Users can only update their own contacts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the contact to update. This is the contact's UUID in the Productlane system. |
| `name` | string | No | The new name for the contact. Must be between 1-255 characters if provided. |
| `email` | string | No | The new email address for the contact. Must be a valid email format with maximum 254 characters. |
| `companyId` | string | No | The unique identifier of the company to associate this contact with. Must be between 1-255 characters if provided. |
| `companyName` | string | No | The name of the company to associate this contact with. Must be between 1-255 characters if provided. |
| `companyExternalId` | string | No | External identifier for the company (e.g., from a CRM system). Must be between 1-255 characters if provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Insight

**Slug:** `PRODUCTLANE_UPDATE_INSIGHT`

Tool to update an existing insight (thread) by ID. Use when you need to modify insight properties such as title, state, pain level, or associations with projects, companies, or contacts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the insight to update |
| `text` | string | No | Updated text content for the insight |
| `state` | string ("NEW" | "PROCESSED" | "COMPLETED" | "SNOOZED" | "UNSNOOZED") | No | State of the insight |
| `title` | string | No | Updated title for the insight |
| `notify` | object | No | Notification settings for the update |
| `tagIds` | array | No | List of tag IDs to associate with this insight |
| `companyId` | string | No | ID of the company to associate with this insight |
| `contactId` | string | No | ID of the contact to associate with this insight |
| `painLevel` | string ("UNKNOWN" | "LOW" | "MEDIUM" | "HIGH") | No | Pain level for the insight |
| `projectId` | string | No | ID of the project to associate with this insight |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Close Productlane Widget

**Slug:** `PRODUCTLANE_WIDGET_CLOSE`

Tool to close the Productlane widget. Use when you need to hide the widget after completing an interaction.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Disable Productlane Widget

**Slug:** `PRODUCTLANE_WIDGET_DISABLE`

Tool to disable the Productlane widget across the entire page. Use when needing to turn off the widget programmatically.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Widget off event

**Slug:** `PRODUCTLANE_WIDGET_OFF_EVENT`

Tool to remove a previously registered widget event listener. Use after widget setup to deregister callbacks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `event` | string ("loaded" | "opened" | "closed" | "toggled" | "customLinkClicked" | "openDocsPage") | Yes | The widget event name to unregister. |
| `callback` | string | Yes | The JavaScript callback function reference to remove. Must match the original function passed to Productlane.on(). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Register Widget Event Listener

**Slug:** `PRODUCTLANE_WIDGET_ON_EVENT`

Tool to register a listener for Productlane widget events. Use after widget initialization to run custom logic on 'open', 'close', 'submit', or 'widgetLoaded' events.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `event` | string ("open" | "close" | "widgetLoaded" | "submit") | Yes | Name of the widget event to listen for. Supported events: 'open', 'close', 'widgetLoaded', 'submit'. |
| `callback` | string | Yes | JavaScript function or arrow function to execute when the event fires. E.g., '(data) => console.log(data)'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Open Productlane Widget

**Slug:** `PRODUCTLANE_WIDGET_OPEN`

Tool to generate a JavaScript snippet that opens the Productlane widget. Use when you need to programmatically display the widget on your front-end after page load.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view` | string ("INDEX" | "CHANGELOG" | "DOCS" | "FEEDBACK") | No | The widget view to open. Valid values: 'INDEX', 'CHANGELOG', 'DOCS', 'FEEDBACK'. Defaults to 'INDEX' if not provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Open Productlane Docs Article in Widget

**Slug:** `PRODUCTLANE_WIDGET_OPEN_DOCS`

Tool to open a specific docs article in the Productlane widget. Use after widget initialization and load.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `document_id` | string | No | Internal ID of the docs article. Provide either this or document_url_name. |
| `document_url_name` | string | No | URL path of the docs article, e.g., 'get-started/quickstart'. Provide either this or document_id. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Toggle Productlane Widget

**Slug:** `PRODUCTLANE_WIDGET_TOGGLE`

Tool to toggle the Productlane widget between open and closed states. Use after widget initialization.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
