Back to Nodes

ngram

Last updated Oct 6, 2026

Generate polished AI videos from prompts, URLs, docs, and product content in n8n workflows.

14 Weekly Downloads
88 Monthly Downloads

Included Nodes

ngram
ngram: On Video Ready
ngram: On Video Failed

Description

n8n-nodes-ngram

!n8n.io – Verified Community Node
![npm version](https://www.npmjs.com/package/n8n-nodes-ngram)
![License: MIT](./LICENSE)

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.completed webhook — no polling loop needed.
  • Trigger – On Video Failed: instant video.failed webhook, 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

  • n8n: >= 1.82.0
  • Node.js: >= 24
  • Usage

    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

  • Turn product launch rows, changelog entries, or campaign briefs into videos.
  • Create short videos from blog posts, RSS feed items, landing pages, or docs.
  • Generate on-brand updates for Slack, social scheduling, CRM, and marketing ops.
  • Poll render status or trigger downstream workflows when videos are ready.
  • Alert your team when a render fails so the workflow can recover quickly.
  • 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

  • ngram n8n setup guide
  • ngram documentation
  • ngram public API reference
  • Verified listing on n8n.io
  • n8n community nodes documentation
  • n8n community node verification guidelines
  • Contributing

    This repository is the source of truth for the ngram n8n node; the ngram
    monorepo no longer contains it.

  • Change the node with a pull request to this repository.
  • Merging to 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.

  • When ngram’s public API changes in a way that affects the node, the node

needs a matching pull request here.

See CONTRIBUTING.md for details.

License

MIT – Copyright (c) 2026 Ngram.