Feedback API
The Feedback API allows you to collect user feedback from any flows, specifically GraphQL APIs. This enables you to gather ratings, comments, and metadata about API responses, which can be viewed in the Reports section to improve your AI applications.
Overview
When executing flows via GraphQL API, you receive a requestId in the response. This requestId can be used to submit feedback about the flow execution, helping you track user satisfaction and identify areas for improvement.
Getting the Request ID
After executing a flow via GraphQL API, you’ll receive a requestId in the response. This unique identifier is used to associate feedback with a specific flow execution.
{
"data": {
"executeWorkflow": {
"requestId": "your_request_id",
"status": "success",
"result": { ... }
}
}
}
Authentication
To submit feedback, you’ll need to include your API key in the request headers:
Authorization: Bearer your_api_key
You’ll also need to include your project ID:
x-project-id: your_project_id
Submit Feedback
The submitFeedback mutation allows you to submit feedback for a specific flow execution.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
requestId |
String | Yes | The unique identifier from the flow execution response |
rating |
Int | No | A numeric rating (e.g., 1-5) |
comment |
String | No | Text feedback or comments |
metadata |
JSON | No | Additional metadata as a JSON object |
Response Fields
| Field | Type | Description |
|---|---|---|
success |
Boolean | Indicates if the feedback was submitted successfully |
message |
String | A message describing the result |
data |
JSON | Optional additional data |
error |
String | Error message if submission failed |
Code Examples
cURL
curl -X POST \
https://sandbox566-acridxylophone.lamatic.dev/graphql \
-H "Authorization: Bearer ${LAMATIC_API_KEY}" \
-H 'Content-Type: application/json' \
-H 'x-project-id: 93628611-e45c-4895-a807-7e6f950b295c' \
-d '{
"query": "mutation SubmitFeedback($requestId: String!, $rating: Int, $comment: String, $metadata: JSON) { submitFeedback(requestId: $requestId, rating: $rating, comment: $comment, metadata: $metadata) { success message data error } }",
"variables": {
"requestId": "your_request_id",
"rating": 5,
"comment": "Great response!",
"metadata": {
"source": "api",
"user_id": "123"
}
}
}'
Node.js
const axios = require('axios');
// Export your Lamatic API key as an environment variable
const lamatic_api_key = process.env.LAMATIC_API_KEY;
const query = `
mutation SubmitFeedback(
$requestId: String!
$rating: Int
$comment: String
$metadata: JSON
) {
submitFeedback(
requestId: $requestId
rating: $rating
comment: $comment
metadata: $metadata
) {
success
message
data
error
}
}
`;
const variables = {
requestId: "your_request_id",
rating: 5,
comment: "Great response!",
metadata: {
source: "api",
user_id: "123"
}
};
const options = {
method: 'POST',
url: 'YOUR_PROJECT_ENDPOINT',
headers: {
Authorization: `Bearer ${lamatic_api_key}`,
'Content-Type': 'application/json',
'x-project-id': 'YOUR_PROJECT_ID',
},
data: { query, variables }
};
axios(options)
.then(response => console.log(response.data))
.catch(error => console.error(error));
Python
import os
import requests
# Export your Lamatic API key as an environment variable
lamatic_api_key = os.getenv('LAMATIC_API_KEY')
gqlQuery = """
mutation SubmitFeedback(
$requestId: String!
$rating: Int
$comment: String
$metadata: JSON
) {
submitFeedback(
requestId: $requestId
rating: $rating
comment: $comment
metadata: $metadata
) {
success
message
data
error
}
}
"""
variables = {
"requestId": "your_request_id",
"rating": 5,
"comment": "Great response!",
"metadata": {
"source": "api",
"user_id": "123"
}
}
data = {"query": gqlQuery, "variables": variables}
headers = {
"Authorization": f"Bearer {lamatic_api_key}",
"Content-Type": "application/json",
"x-project-id": "YOUR_PROJECT_ID"
}
url = "YOUR_PROJECT_ENDPOINT"
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
print(response.json())
else:
print(f"Error: {response.status_code}")
print(response.text)
Response Example
Success Response
{
"data": {
"submitFeedback": {
"success": true,
"message": "Feedback submitted successfully",
"data": null,
"error": null
}
}
}
Error Response
{
"data": {
"submitFeedback": {
"success": false,
"message": "Failed to submit feedback",
"data": null,
"error": "Invalid requestId"
}
}
}
Viewing Feedback
After submitting feedback, you can view all collected feedback in the Reports section of your Lamatic dashboard. The reports provide insights into:
- User ratings and satisfaction levels
- Comments and textual feedback
- Metadata associated with feedback submissions
- Trends and patterns over time
This data helps you identify areas for improvement and track the quality of your AI applications.