Insights

This page has all the methods related to Insights (Feedbacks).

Note that "Insights" and "Feedbacks" are the same thing. Internally, we just call them Feedbacks because that's what they were called when Productlane was first launched :)


POSTcreateFeedback

Submit an insight

Creates a new insight (feedback).

This is different from /submitFeedback:

  • createFeedback requires an API key. It can set more fields (like the status). On Productlane, it's the method that gets called when you create an insight from the Dashboard.

  • submitFeedback does not require an API key, but requires the Public Roadmap to be enabled. On Productlane, it's the method that gets called when a user submits feedback on your Public Roadmap.

Params

  • Name
    text
    Type
    string
    Description

    Text to be included in the feedback

  • Name
    painLevel
    Type
    "UNKNOWN" | "LOW" | "MEDIUM" | "HIGH"
    Description

    How critical this feature is to the user.

    In the Productlane Portal and Dashboard, these are displayed differently:

    "LOW" is called Medium
    "MEDIUM" is called High
    "HIGH" is called Critical
  • Name
    email
    Type
    string
    Description

    Email of the user who's submitting the feedback

  • Name
    projectId
    Type
    string
    (optional)
    Description

    ID of the project the user is submitting feedback for

  • Name
    notify
    (optional)
    Description
  • Name
    notify.slack
    Type
    boolean
    (optional)
    Description

    Whether to send a Slack notification to the channel configured for the slack integration

  • Name
    state
    Type
    "NEW" | "PROCESSED" | "COMPLETED"
    (optional)
    Description
    • "NEW" is the default and places the feedback in the inbox
    • "PROCESSED" places the feedback in the repository
    • "COMPLETED" places the feedback in the inbox, and marks it as completed (ready for follow-up)

Result

  • Name
    result
    Type
    Feedback
    Description

    The newly created feedback

  • Name
    error
    Type
    Error
    Description

    Null if the request succeeded, otherwise an error object

Request

POST
/createFeedback
{
	"params": {
		"text": "I just want to tell you how I'm feeling, gotta...",
		"painLevel": "LOW",
		"email": "rick@example.com",
		"projectId": "0040954e-8887-...",
		"notify": { "slack": true },
		"state": "PROCESSED"
	}
}

Response

{
	"result": {
		"id": "276ed589-3e53-40a3-b986-fc89b390c847",
		"createdAt": "2023-02-18T14:02:06.722Z",
		"updatedAt": "2023-02-18T14:02:06.722Z",
		"text": "",
		"userEmail": "test@example.com",
		"painLevel": "UNKNOWN",
		"state": "NEW",
		"origin": "API",
		"organizationId": "922eb553-8dc5-4a00-a16b-01735334be53",
		"customerId": "2dbfb552-5157-4abc-96c6-2fa2c3eef659",
		"companyId": null,
		"reporterId": "5790549e-1a6f-4efe-837a-e70360e25cf0",
		"organization" { ... },
		// All insights created through the API will have a special "reporter".
		// That's because the API gets its own user.
		// You will likely not need this :P
		"reporter": {
			"id": "5790549e-1a6f-4efe-837a-e70360e25cf0",
			"createdAt": "2022-12-13T01:57:57.435Z",
			"updatedAt": "2023-02-07T14:52:30.200Z",
			"email": "922eb553-8dc5-4a00-a16b-01735334be53@rpc.productlane.io", // <org_id>@rpc.productlane.io
			"imageUrl": "https://...",
			"name": "API",
			"role": "API",
			"feedbackEmailsEnabled": false,
			"changelogEmailsEnabled": false,
			"unpublishedProjectsEmailsEnabled": false,
		}
	},
	"error": null
}