Marketing · n8n

Auto-Draft YouTube Shorts from Zendrop Product Videos

Automatically fetch new Zendrop product data via webhook and create a YouTube Shorts draft so content creators never miss a product launch. Save hours of manual uploading and copy-pasting by letting n8n handle the pipeline.

difficulty Intermediatesetup 45 minresult Every time a new product is added in Zendrop, a ready-to-publish YouTube Shorts draft is created with the product title, description, and video URL pre-filled.
  1. 1

    Receive New Product Data from Zendrop

    Add a Webhook node as the trigger. Set HTTP Method to POST and copy the generated webhook URL. In your Zendrop dashboard under Integrations or Automations, paste this URL so Zendrop fires it whenever a new product is added. The payload should include fields like product_title, product_description, and video_url.

  2. 2

    Extract and Clean the Product Fields

    Add a Set node connected to the Webhook. Create three fields: title mapped to {{ $json.body.product_title }}, description mapped to {{ $json.body.product_description }}, and videoUrl mapped to {{ $json.body.video_url }}. This normalises the data before sending it to YouTube.

  3. 3

    Check That a Video URL Exists

    Add an If node to guard against empty video URLs. Set the condition to: {{ $json.videoUrl }} is not empty. Connect the TRUE branch to the next step. Connect the FALSE branch to a No Operation node or simply leave it unconnected to stop the run silently when no video is available.

  4. 4

    Insert Video Metadata as YouTube Shorts Draft

    Add an HTTP Request node on the TRUE branch. Set Method to POST and URL to https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status. Under Authentication choose OAuth2 and select your Google OAuth2 credential (enable YouTube Data API v3 in Google Cloud Console first). Set Body Content Type to JSON and paste this body: { "snippet": { "title": "{{ $json.title }} #Shorts", "description": "{{ $json.description }}" }, "status": { "privacyStatus": "private" } }. Setting privacy to private creates a draft you can review before publishing. Note: for actual video file upload you would stream the videoUrl binary; for a metadata-only draft this call reserves the slot.

  5. 5

    Confirm the Draft Was Created

    Add a final Set node to capture the YouTube response. Map youtubeVideoId to {{ $json.id }} and status to Draft created. You can extend this later to send a Slack or email notification containing the draft link https://studio.youtube.com/video/{{ $json.youtubeVideoId }}/edit.

Frequently asked questions

Do I need a verified YouTube channel to upload Shorts?

Yes. Your YouTube channel must be verified and in good standing. Channels with fewer than 50 subscribers may face upload restrictions via the API. Make sure the YouTube Data API v3 is enabled in your Google Cloud Console project and that your OAuth2 scope includes `https://www.googleapis.com/auth/youtube.upload`.

Zendrop does not have a native webhook — how do I trigger this?

If Zendrop does not expose a direct outbound webhook in your plan, you can poll the Zendrop API on a schedule using an n8n `Schedule Trigger` plus an `HTTP Request` node that calls the Zendrop REST API endpoint for products, then filter for items newer than the last run timestamp stored in a `Set` node.

Will the video actually appear as a Short on YouTube?

YouTube automatically classifies a video as a Short if it is vertical (9:16 ratio), 60 seconds or under, and includes `#Shorts` in the title or description. This workflow adds `#Shorts` to the title automatically. Make sure the source video from Zendrop meets the vertical and duration requirements for it to be surfaced as a Short after you publish the draft.

About this recipe. Recipes on FlowRecipesHub are written for business owners, not developers, and are tested before publishing — how recipes get made. Some ingredient links are affiliate links that cost you nothing — full disclosure.