Submit feedback
loopback_submit_feedbackFile a new feedback item tagged to a project, capturing UI defects, backend errors, usage insights, or UX issues with optional severity, console, network, and reproduction details.
Instructions
Create a new feedback item in the Loopback bus.
Use this to file any observation about a running product: a UI defect, a backend error, a usage insight, or a UX papercut. Every item is tagged to a project so the right agent picks it up later.
Args: project (slug), type (ui|backend|usage|ux), title, and optionally body, severity (p0-p3, default p2), source, reporter, route, url, dom_selector, screenshot_path, replay_url, console[], network[], repro_steps[].
Returns the created item as JSON, including its generated id (fb_...). New items start with status 'open'.
Example: file "Pay button dead on iOS Safari" with project='shop-web', type='ui', severity='p1', route='/checkout'.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Full URL where observed | |
| body | No | Full description of the feedback/observation | |
| type | Yes | Feedback dimension: 'ui' (visual/design), 'backend' (errors/API), 'usage' (analytics/behavior), 'ux' (flow/experience) | |
| extra | No | Free-form context object: LLM run ids/model/trace URLs for AI features, automation run metadata, viewport, element HTML snippet, etc. | |
| route | No | App route where observed, e.g. '/checkout' | |
| title | Yes | Short summary, e.g. 'Checkout button dead on mobile Safari' | |
| source | No | Where this feedback came from | manual |
| console | No | Recent console log lines relevant to the issue | |
| network | No | Relevant network requests (url, method, status, ms) | |
| project | Yes | Project/repo slug this feedback belongs to, e.g. 'appbroda-web' | |
| reporter | No | Who reported it | human |
| severity | No | p0=critical, p1=high, p2=normal, p3=nice-to-have | p2 |
| replay_url | No | Session replay link (e.g. PostHog replay URL) | |
| repro_steps | No | Steps to reproduce | |
| dom_selector | No | CSS selector of the affected element | |
| screenshot_path | No | Path or URL of a screenshot |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Feedback id, e.g. 'fb_mabc12_3f9a1c' | |
| url | No | ||
| body | Yes | ||
| type | Yes | ||
| extra | Yes | Free-form captured context. Read `extra.failed_responses` for failing requests with up to 2KB of response body, and `extra.context` for LLM/automation run metadata (run_id, model, trace_url). | |
| links | Yes | Repo/branch/commit/PR of the fix | |
| route | No | ||
| title | Yes | ||
| source | Yes | ||
| status | Yes | ||
| console | Yes | Console lines captured at report time | |
| network | Yes | Network calls captured at report time | |
| project | Yes | ||
| comments | No | Full audit trail | |
| reporter | Yes | ||
| severity | Yes | ||
| created_at | Yes | ||
| replay_url | No | ||
| resolution | No | ||
| updated_at | Yes | ||
| attachments | No | Files attached to this item. `intent` decides what you do with each: 'reference' is context for the fix and never ships; 'asset' is a deliverable — copy it from `path` to `target_path` in the repo, commit it, and record that with loopback_link_change. Read files from `path` directly rather than fetching `url`. | |
| repro_steps | Yes | ||
| dom_selector | No | ||
| assignee_agent | No | Agent currently holding the claim | |
| screenshot_path | No |