update_insight
Update an insight (a FINDING) — set its status, or edit its content. Allowed status: open / addressed / superseded / dismissed. Note: you normally don't set 'addressed' by hand — that happens automatically when set_intervention links this finding to a shipped fix. An insight carries NO fix verdict; 'did it work' lives on the linked intervention (see get_interventions). Use this to dismiss/supersede a finding, edit its text/tags, or attach evidence snapshots.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Replace the insight's tags with this list (e.g. ['seo','fix-applied']). Pass [] to clear all tags. | |
| notes | No | Free-text note about this finding. Stored alongside the insight for future reference. | |
| title | No | Updated title | |
| action | No | Updated action step | |
| delete | No | Remove this insight entirely — use when the user says it's not relevant or not an issue | |
| status | No | Workflow state. Setting status auto-syncs the legacy completed/dismissed mirror booleans. | |
| _offset | No | Pagination offset. If a response includes _pagination.hasMore=true, use _offset to fetch the next page. | |
| addTags | No | Append these tags to the existing set without removing others. Useful for adding workflow tags like 'fix-applied' or '30-day-check' without overwriting. | |
| category | No | Updated category | |
| priority | No | Updated priority | |
| threadId | No | Set or change this insight's threadId directly. Use empty string to clear. | |
| completed | No | (Legacy) Mark as completed. Setting true without a status sets status='addressed'; false sets status='open'. | |
| dismissed | No | (Legacy) Mark as dismissed. Setting this to true without a status sets status='dismissed'. | |
| insightId | Yes | The insight ID to update | |
| removeTags | No | Remove these tags from the existing set, leaving others intact. | |
| description | No | Updated description | |
| linkSnapshotIds | No | Attach existing metric snapshots (record_metric_snapshot rows) to this insight as supporting evidence for the finding. Pass the snapshotIds (returned from query_metric_snapshots). The snapshots appear in get_insights(report: 'thread') timelines. Use this when snapshots were recorded without insightId — typical when you only learn the insight ID after saving. | |
| parentInsightId | No | Link this insight to a predecessor. The threadId is auto-managed: if the parent has one, it's inherited; otherwise a fresh threadId is generated and applied to both. Pass an empty string to detach the parent (and clear threadId if no other thread members reference it). | |
| unlinkSnapshotIds | No | Detach the given snapshotIds from this insight (sets their insightId to null). Use to correct a wrong link. |