Back to Templates

Bilingual Newsletters with GPT-4o, AI Images & Videos for HubSpot & SP

Created by

Created by: plemeo || plemeo

plemeo

Last update

Last update 22 days ago

Share


Who’s it for

Marketing, growth, and automation teams that need to ship polished bilingual newsletters—complete with images, optional video, and multi-channel distribution—without writing a line of code.

How it works / What it does

  1. A Webhook receives a plain-language request (e.g. “Create a newsletter about XYZ and store it in SharePoint”). The Webhook can be changed to another trigger, fr example Manual Trigger.
  2. An AI Agent (OpenAI GPT-4o) drafts German & English newsletter copy following a strict JSON schema.
  3. SharePoint fetches an HTML template; a Code node injects AI copy into the placeholders.
  4. Optional creative assets:
    • Pollinations AI → image (resolution check & frame overlay)
    • FAL AI → short video + Lyria2 audio → merged via FFmpeg API
  5. A Gmail Approval step sends the draft to an approver; the flow continues only on “Approve”.
  6. Depending on user intent the workflow:
    • Emails the newsletter to HubSpot contacts, and/or
    • Saves HTML (+ JPG/Video URL) to a SharePoint library.

How to set up

  1. Import the template
  2. Open the yellow sticky note and follow the checklist
    • Create credentials for OpenAI, HubSpot (App Token), Microsoft 365, Gmail, and FAL AI.
    • Enter them in n8n Credential Manager (never in the HTTP node).
  3. Edit the Configuration Settings Set node with your ENV_* variables.
  4. Activate the workflow, copy the production Webhook URL, and trigger it with JSON body { "text": "…" } or with a desired trigger.

Requirements

  • OpenAI account
  • Microsoft 365 tenant (SharePoint & Outlook)
  • HubSpot App Token
  • FAL AI API Key (video & audio generation)

How to customize

  • Want a different language? Tweak the AI prompt inside AI Agent.
  • Want a different storage provider? Change the SharePoint nodes to Google Drive or Dropbox.
  • Skip video generation: set include_video to false in the incoming prompt.
  • Change the distribution logic by adjusting the WF Result Switch node.
  • Add more channels (e.g. Slack) by inserting additional branches after the Switch and modifying the intent determination at the beginning of the workflow.