Skip to main content
PATCH
/
api
/
signals
Update Signals
curl --request PATCH \
  --url https://app.puffle.ai/api/signals \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "items": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "comment": "<string>",
      "dmText": "<string>",
      "commentText": "<string>"
    }
  ]
}
'
{
  "updated": [
    "<string>"
  ],
  "errors": [
    {
      "id": "<string>",
      "error": "<string>"
    }
  ]
}
CLI:
puffle signal update --items <items>

Overview

Applies feedback or edited draft text to one or more signals in a single call. Idempotent per id — re-sending the same payload is safe. Use this when a user votes on a signal, leaves a comment, or saves edits to an AI-generated DM or comment before sending.

AI agent notes

Each item must set at least one mutable field (vote, comment, dmText, commentText, or status). The response splits into updated (ids that succeeded) and errors (per-id failures).Vote semantics. vote: "up" marks the signal correct, vote: "down" marks it incorrect, vote: null clears the vote.Saving drafts. Edited dmText / commentText replace the previous AI draft and surface on later GET /api/signals calls. Use Generate Messages to produce the initial draft first.Dismissal. Set status: "dismissed" to hide a signal from the default feed view (replaces the prior DELETE /api/signals route). Valid status values: "new", "commented", "dismissed". There is no documented un-dismiss path — confirm intent before calling on a user’s behalf.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
items
object[]
required
Required array length: 1 - 200 elements

Response

Per-item update outcomes.

updated
string[]
required
errors
object[]