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.
- 1
Receive New Product Data from Zendrop
Add a
Webhooknode as the trigger. SetHTTP Methodto 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 likeproduct_title,product_description, andvideo_url. - 2
Extract and Clean the Product Fields
Add a
Setnode connected to the Webhook. Create three fields:titlemapped to{{ $json.body.product_title }},descriptionmapped to{{ $json.body.product_description }}, andvideoUrlmapped to{{ $json.body.video_url }}. This normalises the data before sending it to YouTube. - 3
Check That a Video URL Exists
Add an
Ifnode 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 aNo Operationnode or simply leave it unconnected to stop the run silently when no video is available. - 4
Insert Video Metadata as YouTube Shorts Draft
Add an
HTTP Requestnode on the TRUE branch. SetMethodto POST andURLtohttps://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status. UnderAuthenticationchooseOAuth2and select your Google OAuth2 credential (enable YouTube Data API v3 in Google Cloud Console first). SetBody Content Typeto 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 thevideoUrlbinary; for a metadata-only draft this call reserves the slot. - 5
Confirm the Draft Was Created
Add a final
Setnode to capture the YouTube response. MapyoutubeVideoIdto{{ $json.id }}andstatustoDraft created. You can extend this later to send a Slack or email notification containing the draft linkhttps://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.