Reply to a hand-off
Answer the customer. This is the only endpoint that sends something to one of your customers, so it behaves differently from the rest of the API.
Credential: user token · Role: owner, admin or responder (reply)
The reply leaves the building
It is not “add a message to a thread”. It goes out on the channel the conversation started on — back to WhatsApp, Messenger or Instagram, or by email from the connected mailbox — and is mirrored into the linked Slack thread and appended to the Zendesk or HubSpot ticket. If the customer is in the widget, it signals that a human has arrived.
attachments is a 400, not a silent omission — attaching a file needs an authenticated upload into your workspace’s own storage, so it stays a dashboard flow.Side effects worth knowing
Replying also stamps the first-reply time, and auto-assigns the hand-off to you if nobody owns it yet.
It emits handoff.message.created — and, with resolve: true, handoff.status.changed. If you wire both an API reply path and a webhook consumer, you will receive your own reply back as an event. Dedupe on the event id.
Authorizations
A user token (pv_ut_…) as Authorization: Bearer pv_ut_…. X-Peeve-Key is accepted too. Never a query parameter — URLs end up in proxy logs and Referer headers.
The token carries its owner's live workspace role, re-read on every call.