Zapier
Wire Voicegram into 7,000+ apps with the official Zapier integration. Setup steps, NewVoicegram trigger output fields, and sample data.
On this page
The Voicegram Zapier app pipes completed voicegrams into 7,000+ downstream apps with no code. Each Zap is bound to a personal access token and can be scoped to a single channel.
Beta
The Voicegram Zapier app is in private beta while we finalize the Zapier directory listing. Public availability is coming soon. This page describes the integration as it will work when the listing goes live. If you need access today, ask us at support@voicegram.io.
Setup
- Create a Voicegram personal access token. See the API tokens guide for the full flow. You will get a single
vg_pat_...string. Copy it. - In Zapier, create a new Zap and pick Voicegram as the trigger app. Choose the New Voicegram trigger.
- When prompted to connect your Voicegram account, paste the PAT into the connection screen. Zapier will validate it against the public API and surface your account name when it works.
- Pick a channel filter. You can leave it as "All channels" to fire on every completed voicegram on your account, or scope to a specific domain or campaign so only voicegrams on that channel kick off the Zap.
- Map the trigger's output fields into the action step. See NewVoicegram trigger output fields below for the full list.
- Click Publish and your Zap is live. Voicegram registers a webhook subscription against your Zapier hook URL. You can see it in Integrations, Webhooks alongside any subscriptions you created directly.
Trigger: New Voicegram
The Zap fires once for every voicegram that finishes processing on your account, subject to your channel filter. The trigger is an instant webhook trigger, so there is no polling delay. Zaps typically execute within a few seconds of the voicegram completing.
NewVoicegram trigger output fields
Each Voicegram trigger row exposes the fields below to downstream Zap steps. The Key column is the Zap-editor field reference (use these in template strings). The Sample column shows the value from the sample payload Zapier renders during setup.
| Key | Label | Type | Sample | Description |
|---|---|---|---|---|
id | Dedup ID (mirrors Event ID) | string | evt_sample-12345678 | Top-level dedup key for Zapier. Mirrors event_id exactly. |
event | Event Type | string | voicegram.completed | Always voicegram.completed today. Reserved for future event types. |
event_id | Event ID | string | evt_sample-12345678 | Stable per logical voicegram completion. Use as your own dedup key if the action step writes to a store you also manage. |
delivered_at | Delivered At | datetime | 2026-05-13T19:23:45.000Z | ISO 8601 timestamp of when Voicegram dispatched the event. |
data__id | Voicegram ID | string | vg_sample_12345678 | Stable identifier for the voicegram itself. Matches the ID in the dashboard URL. |
data__created_at | Recorded At | datetime | 2026-05-13T19:22:00.000Z | ISO 8601 timestamp when the recording was made. |
data__completed_at | Completed At | datetime | 2026-05-13T19:23:00.000Z | ISO 8601 timestamp when transcription and summarization finished. |
data__duration_seconds | Duration (sec) | number | 47 | Length of the recording in seconds. Float (e.g., 11.36). |
data__sender__verification_method | Verification Method | string | email | How the sender verified before recording. email or sms. |
data__sender__email | Sender Email | string | sample.customer@example.com | Present when verification_method is email. Null otherwise. |
data__sender__phone | Sender Phone | string | null | Present (E.164 format) when verification_method is sms. Null otherwise. |
data__channel__type | Channel Type | string | domain | domain for widget-recorded voicegrams. campaign for campaign landing-page voicegrams. |
data__channel__id | Channel ID | string | sample-domain-id | Stable ID of the domain or campaign the voicegram came from. |
data__channel__name | Channel Name | string | example.com | Domain name or campaign name. Useful for routing logic in Zap filters. |
data__channel__page_url | Page URL | string | https://example.com/pricing | Page the widget was on when the voicegram was recorded. Only set for domain channels. Null for campaign. |
data__transcript__text | Transcript Text | string | Hi, I wanted to ask about your enterprise pricing options... | Full transcript of the recording. |
data__transcript__confidence | Transcript Confidence | number | 0.94 | Transcription confidence score from 0.0 to 1.0. Useful for branching: if confidence below 0.7, route to a human review queue. |
data__summary__text | AI Summary | string | Customer asking about enterprise pricing. Wants a callback or follow-up email. | AI-generated prose summary (typically 2 to 3 sentences, max ~200 words). |
data__summary__urgency | Urgency | string | medium | AI-classified urgency: low, medium, high, or null. |
data__summary__sentiment | Sentiment | string | neutral | AI-classified sentiment: positive, neutral, negative, frustrated, or null. |
data__summary__intent | Intent | string | inquiry | AI-classified intent (free-form, e.g., inquiry, support, complaint). May be null. |
data__summary__callback_required | Callback Requested | boolean | true | True when the caller explicitly asked for a callback. |
data__summary__action_items[]task | Action Item Task | string | Send enterprise pricing details | The task text for each extracted action item. Array; one row per item. |
data__summary__action_items[]priority | Action Item Priority | string | medium | low, medium, or high for each action item. |
data__summary__action_items[]deadline | Action Item Deadline | string | null | Free-form deadline (e.g. ASAP, by Friday) if the caller mentioned one. Null otherwise. |
data__summary__mentioned__names[] | Mentioned Names | string | Example Corp | People or company names the caller mentioned. Array. |
data__summary__mentioned__phones[] | Mentioned Phones (E.164) | string | +14155550123 | Phone numbers in E.164 format. Pipe straight into Twilio or your CRM. |
data__summary__mentioned__emails[] | Mentioned Emails | string | pricing.questions@example.com | Email addresses the caller mentioned, including spoken-out forms. |
data__audio__url | Audio URL (signed) | string | https://www.voicegram.io/api/listen/vg_sample_12345678?t=... | Signed listen URL. Validity is plan-scaled: 30 days (Free), 90 days (Starter), 365 days (Pro / Business / Enterprise). After expiry the URL returns 403. |
data__audio__expires_at | Audio URL Expires At | datetime | 2026-05-14T19:23:45.000Z | ISO 8601 timestamp when this specific audio.url stops working. |
data__audio__content_type | Audio Content Type | string | audio/webm | MIME type of the audio file. Currently always audio/webm. |
data__dashboard_url | Dashboard Link | string | https://voicegram.io/dashboard/inbox/vg_sample_12345678 | Permanent link to view the voicegram in your Voicegram dashboard. |
data__tags[] | User Tags | string | pricing | User-supplied tags from the dashboard Tags input. Distinct from the AI-classified urgency/sentiment/intent fields. Empty array if the user has not tagged the voicegram. |
Sample data and Test Trigger
Zapier's Test Trigger button asks Voicegram for a recent sample voicegram so you can map fields against real data. Zapier calls GET /api/v1/voicegrams/recent:
- If your account has real completed voicegrams, the latest one is returned.
- If your account has none yet, a synthetic example is returned so you can still map fields. The synthetic row is clearly marked.
This means you can build and ship a Zap before you have any real voicegram traffic. Once a real voicegram completes, the Zap fires with the live payload.
Troubleshooting
- Zap is not firing. Open Integrations, Webhooks and find the auto-created Zapier subscription. The delivery history view tells you whether Voicegram is sending and what Zapier is returning.
- Connection screen rejects the token. Confirm the token has not been revoked and that you copied the full
vg_pat_...string. Tokens are 64 hex characters after the prefix. Pasting an extra space or truncating the tail will cause an auth failure. - Field mapping looks wrong. The full payload schema is in the OpenAPI spec. If the Zapier UI shows a stale or partial sample, click Test Trigger again to refresh.
- Signature verification. Zapier validates the signature on every delivery. If you need to debug a signature mismatch, the webhooks guide has the algorithm and runnable code samples.
- Deleted the subscription but the Zap still looks active. If you delete a Zapier-source subscription from the Voicegram dashboard, remember to also disable or delete the corresponding Zap in Zapier. Otherwise your Zap will appear active in Zapier's UI but no events will fire because the Voicegram side of the connection is gone.
Zapier plan considerations
Zapier's own plan limits (tasks, single-step vs multi-step Zaps, premium-app access) apply to your usage of this integration. See Zapier's pricing for the current details.