Description
n8n-nodes-ngram
!n8n.io – Verified Community Node


Official ngram community node for n8n,
verified by n8n. Generate polished AI videos from prompts, text, URLs,
docs, and product content, then automate follow-up workflows the instant a
render is ready or fails — no polling, HMAC-signed callbacks, self-hosted or
n8n Cloud.
This is a verified n8n community node.
It lets you use ngram in your n8n workflows.
Features
- Action – Create Video: start an ngram video render with optional brand context.
- Action – Create From Text: turn a prompt or source text into a video.
- Action – Create From URL: research a page, article, product page, or doc and create a video.
- Action – Get Status: check a submitted job by id.
- Model choice: pick the AI model for each video, with its live credits-per-second rate shown in the list.
- Trigger – On Video Ready: instant
video.completedwebhook — no polling loop needed. - Trigger – On Video Failed: instant
video.failedwebhook, with error code and message. - Signed and reconciled: every webhook is HMAC-SHA256 signed, and subscriptions are
auto-reconciled on activate/deactivate so redeploys never leak orphan hooks.
Installation
Follow the n8n verified community node installation guide.
n8n Cloud
1. Open the nodes panel from the canvas.
2. Search for ngram.
3. Select the verified community node and install it for your instance.
4. Add your Ngram API credential before running workflows.
Self-hosted n8n
1. Open Settings > Community nodes > Install.
2. Enter n8n-nodes-ngram and confirm.
3. Restart n8n. The ngram nodes appear in the node picker.
Docker or CLI
docker exec -u node sh -c "
cd /home/node/.n8n/nodes
npm install n8n-nodes-ngram
"
docker restart
Credentials
1. Generate an API key at
ngram.com/app/settings/api-keys.
The key starts with ngs_.
2. In n8n, create a new Ngram API credential and paste the key.
3. Leave Base URL as https://www.ngram.com for production. Override it
only for staging or preview environments.
Use the credential Test button to verify access. It calls
GET /api/v1/account.
Operations
ngram node
| Operation | Required inputs | Returns |
| — | — | — |
| Create Video | prompt | Job descriptor including id and status |
| Create From Text | prompt | Job descriptor including id and status |
| Create From URL | website_url | Job descriptor including id and status |
| Get Status | id returned by a create operation | Current status and output URLs when ready |
Create settings
The three create operations share these optional settings. Leave any of them
empty to let ngram choose. The dropdowns load live from your ngram account.
| Field | Sent as | Notes |
| — | — | — |
| Model | director_model | The AI model that makes the video. Each option shows its live rate in credits per second, so the price depends on the model you pick. Leave empty to use your account’s default model. |
| Voice | voice_id | The narrator, or No voiceover for a silent video. |
| Style | style_id | The look of the video. Auto lets ngram choose. |
| Aspect Ratio | aspect_ratio | 16:9, 9:16, or 1:1. |
| Duration | duration | Pick a suggested length, or use an expression for any length of at least 1 second. Leave empty for Auto. |
| Energy | energy_level | The pace of the video. |
| Mood | mood | The emotional tone. Auto lets ngram choose. |
| Narration Language | voice_language | The language the narration is spoken in. Leave empty to match the prompt. |
| Brand Kit | brand_kit | Apply one of your ngram Brand Kits (colors, fonts, and logo). |
| Video Format | video_format | Video (the default) or Short Video, a video without narration. |
| Image URLs | image_urls | Public image URLs, one per line, used as video sources rather than prompt text. |
Creating videos through the API needs a paid ngram plan. When ngram turns a
request down, for example because the account is on the Free plan or a setting
is invalid, the node shows ngram’s own message, including the field it rejected,
instead of a generic HTTP error.
Get Status also returns app_url, a link that opens the video in ngram, and
warnings, one line per input ngram ignored or adjusted.
Trigger nodes
| Trigger | Event subscribed | Payload |
| — | — | — |
| ngram: On Video Ready | video.completed | Video metadata and signed download URLs |
| ngram: On Video Failed | video.failed | Job id and failure reason |
Trigger Behavior
The trigger nodes register a webhook subscription with the ngram API when
activated and delete it when deactivated. On re-activation, they query
GET /api/v1/webhooks/subscriptions and reuse any matching subscription
instead of creating a duplicate.
When a trigger is deleted, it also sweeps residual orphan subscriptions for the
same (eventtype, targeturl) pair.
HMAC Signature Verification
Webhook payloads are HMAC-signed with X-Ngram-Signature and
X-Ngram-Timestamp headers.
This version of the node does not surface the signing secret for inline
verification inside n8n. The secret is returned only at subscription creation
time and is not exposed by the list endpoint. If you need signature
verification, chain an HTTP Request or Function node downstream and validate
the headers against your stored secret.
Compatibility
>= 1.82.0>= 24Usage
Ready-to-use workflow templates are included in templates:
notify-on-video-ready.json:post to Slack when any ngram video finishes rendering.
create-video-from-google-sheets-row.json:generate a video from new Google Sheets rows.
create-video-from-rss-item.json:turn new RSS feed items into videos.
email-on-video-ready.json:email a stakeholder when a video is ready.
save-video-to-airtable.json:archive completed video metadata in Airtable.
sms-on-video-failed.json:send an SMS alert when a render fails.
create-video-from-hubspot-contact.json:create personalized intro videos for new HubSpot contacts.
changelog-video-from-github-merged-pr.json:turn merged GitHub pull requests into changelog videos.
Import a template with Workflow menu > Import from file, replace credential
references and app-specific settings, then activate the workflow.
What You Can Automate
Because the node runs inside your own n8n instance — self-hosted or n8n
Cloud — there’s no separate vendor hop for the workflow runner: renders run
against ngram, everything else stays in your workflow.
The Slack notification template uses only the On Video Ready trigger.
ngram’s public API does not currently expose a per-workflow correlation id, so a
template that chains Create Video with the trigger would fire for every video
on the account. For a correlated create-and-wait flow, chain Create Video with
a Wait node followed by a Get Status loop.
Resources
Contributing
This repository is the source of truth for the ngram n8n node; the ngram
monorepo no longer contains it.
main with a version bump in package.json publishes the new version to npm under the latest tag through
.github/workflows/publish.yml, using npm
trusted publishing.
needs a matching pull request here.
See CONTRIBUTING.md for details.
License
MIT – Copyright (c) 2026 Ngram.