Integrations
Integration recipes
UpVoiced connects to Zapier, Make and your help desk with two building blocks you already have: signed webhooks send events out, and the REST API creates posts. There is no app to install in those tools; each recipe uses their standard webhook, code and HTTP steps.
Zapier
Catch Raw Hook, a Code by Zapier step that checks the signature, then any action.
Make
A custom webhook with a signature filter, then Parse JSON and any module.
Support conversations
A bookmarklet that turns a message in Intercom, Crisp or Help Scout into a post.
Events for automations
Each recipe starts from one of these webhook events. Payloads contain only what a public portal could show: customers appear by an opaque id, never by email address or name.
| Event | Sent when | Availability |
|---|---|---|
post.created | A post is created and is public at once (a post held for approval is not sent as post.created; its approval arrives as post.updated). | Available |
post.status_changed | A post moves to another status, for example from Planned to Shipped. | Available |
survey.response.created | A customer answers a Pulse survey (NPS, CSAT, CES and others) on a routing rule that sends responses to your endpoint. | Not subscribable yet: it arrives with Pulse survey routing rules. |
Webhook endpoints are an owner or admin setting (dashboard Settings → Integrations → Webhooks, or POST /v1/webhooks), and the number of endpoints depends on the plan (none on Free). Events on private or unlisted boards are sent only to endpoints whose board filter lists those boards. Every delivery is signed: the webhooks guide explains the signature and has verifiers for your own server.
Create posts from other tools
To log feedback from a form, a CRM or a help desk automatically, call POST /v1/posts with an API key that has the write scope. Posts created with a key are approved at once, like posts your team creates in the dashboard.
curl -X POST https://api.upvoiced.com/v1/posts \
-H "Authorization: Bearer ***" \
-H "X-Workspace: $UPVOICED_WORKSPACE_ID" \
-H "Idempotency-Key: helpdesk-conversation-4242" \
-H "Content-Type: application/json" \
-d '{"board_id":"0190f5e2-4c1d-7a3b-8c2d-5e6f7a8b9c10","title":"Export to CSV","body_md":"Asked in a support conversation: export the whole board to CSV.","on_behalf_of_email":"pat@example.com"}'| Field | Meaning |
|---|---|
board_id | Required. The board’s id (list boards with GET /v1/boards). |
title | Required. Up to 140 characters. |
body_md | Optional description in Markdown. |
on_behalf_of_email | Optional. The customer becomes the author and a follower, and gets a “we logged your request” email. |
Find board ids with GET /v1/boards. Send an Idempotency-Key built from the source record’s id (8 to 128 characters from [A-Za-z0-9_.:-]), so an automation that runs twice creates one post. The Zapier and Make pages show the same request in their HTTP steps.
Keep keys and secrets in the automation tool
- An API key or a webhook signing secret stored in a Zap or a scenario can be read by anyone who can edit it. Use a key with the smallest scope that works (
writeto create posts) and revoke or rotate it when people leave. - Never put a key in a browser bookmark, a link or a page script. The support-conversation bookmarklet opens your signed-in dashboard instead and needs no key.