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.